- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经为作业定义了以下触发器:
var postbagJobTrigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("cronJOBBER", "Campaigns")
.WithCronSchedule("0 13 9 1/5 * ? *")
.StartAt(new DateTime(2014, 12, 3))
.EndAt(new DateTime(2015, 3, 3))
.WithPriority(1)
.Build();
我期望的是我的触发器的第一次时间应该是 DateTime(2014, 12, 3)
。但是当我看到这个作业的触发时间表时,第一时间是DateTime(2014, 12, 6)
。当我添加 StartNow()
条件时,第一个时间将是满足从现在开始的时间表的时间,即 DateTime(2014, 10, 31)
。如何让触发器在我的 StartAt()
时间第一次运行?
最佳答案
我觉得还可以。
问题出在您的 CRON 表达式中。这是 12 月的结果:
8 Monday, December 1, 2014 9:13 AM
9 Saturday, December 6, 2014 9:13 AM
10 Thursday, December 11, 2014 9:13 AM
11 Tuesday, December 16, 2014 9:13 AM
12 Sunday, December 21, 2014 9:13 AM
13 Friday, December 26, 2014 9:13 AM
14 Wednesday, December 31, 2014 9:13 AM
您指示 Quartz.Net 从 12 月 3 日开始计数。
你可以用CronMaker检查你的表情.
最好不要使用DateTime
。这是 StartAt
的定义:
//
// Summary:
// Set the time the Trigger should start at - the trigger may or may not fire
// at this time - depending upon the schedule configured for the Trigger. However
// the Trigger will NOT fire before this time, regardless of the Trigger's schedule.
//
// Parameters:
// startTimeUtc:
// the start time for the Trigger.
//
// Returns:
// the updated TriggerBuilder
public TriggerBuilder StartAt(DateTimeOffset startTimeUtc);
您应该使用 DateTimeOffset
。这article可能对你有帮助。
更新:
Quartz.Net 使用您本地的 TimeZone除非您指定一个不同的。
如果您想检查触发器使用的时区:
((CronTriggerImpl)trigger).TimeZone
更好的方法是使用 DateBuilder :
DateTimeOffset dtNow = DateBuilder.DateOf(10, 32, 30, 28, 10, 2014);
哪个uses您本地的时区。
如果你想实现你所要求的,你可以这样做:
ITrigger trigger = TriggerBuilder
.Create()
.WithIdentity("trigger1", "myGroup")
.StartAt(DateBuilder.DateOf(0, 0, 0, 3, 12, 2014))
.EndAt(DateBuilder.DateOf(0, 0, 0, 3, 3, 2015))
//.WithCronSchedule("0 0 0 1/5 * ? *")
.WithCalendarIntervalSchedule(f=>f.WithIntervalInDays(5))
.WithPriority(1)
.Build();
或
ITrigger trigger = TriggerBuilder
.Create()
.WithIdentity("trigger1", "myGroup")
.StartAt(DateBuilder.DateOf(0, 0, 0, 3, 12, 2014))
.EndAt(DateBuilder.DateOf(0, 0, 0, 3, 3, 2015))
// .WithCronSchedule("0 0 12 1/5 * ? *")
.WithSimpleSchedule(f=>f.WithIntervalInHours(24 * 5).RepeatForever())
.WithPriority(1)
.Build();
如果您想检查您的日程安排,请调用 GetNextXFireTimes
。这是函数:
private void GetNextXFireTimes(ITrigger trigger, int counts)
{
var dt = trigger.GetNextFireTimeUtc();
for (int i = 0; i < (counts-1); i++)
{
if (dt == null)
{
break;
}
Console.WriteLine(dt.Value.ToLocalTime());
dt = trigger.GetFireTimeAfter(dt);
}
}
这是 Cron 表达式 的工作方式:
* * * * *
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
关于c# - 将触发器的第一次触发时间设置为 StartAt() 中提到的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26596069/
当我试图通过电子邮件或电话号码查找记录时,我一直在使用下面的两个代码,有时第一个代码工作正常有时不起作用,第二个代码也一样。 下面的代码和什么时候应该使用“equalTo”或“startAt and
我有这个代码,但我不知道如何让歌曲从 0:19 秒开始。你能帮我吗? · ROLEPLAY · var audio = document
与StartAt,StartAtSequence等其他代码相比,我对 StartWithLastReceived subscription option的要求/重要性有些困惑。 我试图深入研究Java
好像 query.startAt 规则被破坏了,或者我不明白。有人可以确认吗?这是最小的可重现错误。 Live example ;使用 CTRL+SHIFT+i 打开 Chrome 控制台。 GitH
我在我的 Android 应用程序中使用查询时遇到了一些问题。我的数据库最终将有成百上千个轮询对象。我想一次获得大约 20 个,一旦完成这 20 个,我将获得下一个 20 个。我可以轻松获得前 20
我的实时数据库节点结构如下: Bookings{ carID1{ BookingStartTime: some POJO BookingStartTime:
我执行以下查询: firebase.database().ref().child('files').child('54a8924f8c417b2a281f4e3a4c639785/').orderBy
我已经为作业定义了以下触发器: var postbagJobTrigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity(
infiniteHandler($state) { var next = db .collection("posts") .orderBy("timestamp
我的数据从纪元开始以小时为单位存储。我只想获取数据的一部分 - 例如,我想指定我希望所有数据都从 453615 开始。 到目前为止我得到了这段代码: this.dbService.database
让我们假设上面的 Firebase 数据库架构。 我想要的是检索“15039996197”时间戳之后的消息。每个消息对象都有一个createdAt属性。 如何才能仅在特定时间戳之后获取消息?在本例中,
我想使用 startAt() 和 endAt() 方法,但我不完全理解它们是如何工作的。 假设我有当前的数据库 "users" : { "someUser1" : { "email
我正在尝试使用游标,但是每当我查询它时,我都得不到任何结果。例如,下面返回 0, null const next = admin.firestore().collectionGroup('extIte
Firebase 数据库 startAt(boolean) 做什么? Firebase documentation说: Create a query constrained to only retur
正打算将其发布到他们的 github 存储库,但似乎他们更喜欢在这里提出一般性问题。 那么使用startAt()从firebase数据库获取数据时参数有字符串长度限制吗? 我遇到了一个问题,它似乎仅限
我正在尝试使用 firebase 制作 android 应用程序,我想使用 startAt() 在 firebase 上使用搜索功能。但是结果让我很困惑。 我有一些像这样的 Firebase 数据。
我正在开发一个使用 Firebase 作为后端的 Android 应用程序。我是 Firebase 的新手,遇到了一个问题,问题是当我尝试使用 startAt 查询搜索记录时,它返回的结果不是以我输入
这段代码工作正常。 我想要的唯一改进是 - 当我传递“Pi”时,它获取所有以名称“Pi”开头的项目对象,但是当我输入“pi”时它什么都不返回! 这意味着我希望此方法 startAt(itemName)
- foo |--- -LK7rNAPKZP7drHK1eb_ |- timeStamp: 1534966072658 |--- -LKAPfu2lLl2B5zInIhX |-
在我的 firestore 数据库中,有 12+ 个文档。我通过调用以下函数 on button click 正确获取了前 3 个文档.但是在 secondclick ,尽管正确传递了 documen
我是一名优秀的程序员,十分优秀!