我有这个工作者,其运行时间从10秒到1小时不等。我想每五分钟运行一次这个工人。只要工作在五分钟内完成,这就没问题了。但是,如果作业需要更长时间,Iron.io会不断地将相同的任务一遍又一遍地排队,并且在工作人员运行时会累积一堆相同类型的任务。
此外,任务可能无法并发运行至关重要,因此该worker的max concurrency设置为1。
所以我的问题是:有没有办法阻止Iron.io排队仍在运行的工作人员的任务?
答案 0 :(得分:0)
回答我自己的问题。
根据Iron.io支持,不可能阻止IronWorker将仍在运行的工作人员的任务排入队列。对于像我这样的情况,最好让主工作人员进行调度,即通过one of the client libraries从脚本创建/排队任务。
答案 1 :(得分:0)
最好的选择是从工作人员的代码中排队新任务。例如,您的任务运行10秒钟-1小时,并在最后(代码的最后一行)进入队列。这样可以防止工作进程运行时任务堆积。