我想实现以下使用Coldfusion10Scheduler。
如果Task1需要10分钟,那么它应该在第11分钟再次触发。如果下一次跑步需要20分钟,那么它应该只在21分钟触发。
请指点。
发布于 2013-08-08 15:07:08
这是可能的,但不是直接的。调度的任务可以在“链”中运行另一个任务,但是被链接的任务必须是“链”类型的任务。但是,可以让一个任务通过代码运行另一个任务。
这是你怎么安排的。
这应该会创建一个无限循环。但请注意,这可能会导致一些不必要的行为。你将不得不自我管理错误和失败。此外,如果链周期被中断,您将不得不重新启动它。
您可以设置一个监视任务,以确保链正在运行。如果它看起来失败了,您可以调用Task来启动这个链。
发布于 2013-08-08 12:23:39
以下是应遵循的战略:
1)创建一个带有字段的表,以跟踪脚本是否正在使用。示例表: ScheduleStatus,字段: intInUse
2)创建脚本。让脚本的第一行检查intInUse字段是否为null。如果是,那么将其设置为1,然后运行脚本的其余部分。如果字段不是null,则跳到cfabort。
3)脚本完成后,再次将数据库字段标记为NULL。
4)设置计划任务,使其每分钟运行一次。它将每分钟执行一次,如果脚本正在使用,它就会中止。
可能还有其他的方法,通过循环等等.但这可能是最简单的。
我在排队系统中使用了类似的方法,即发送自定义的通讯。
https://stackoverflow.com/questions/18122627
复制相似问题