我希望每隔6小时从订阅中检索并将订阅源存储到DB.我想在后台有一个计时器线程来完成这个任务.
什么是最好的方式?普通的计时器线程或Quartz API?
我已安排使用任务计划程序(TS)运行SSIS作业的任务.它配置为以属于Admin组的用户身份运行.
安全性是"运行是否用户登录"选中"不存储密码"选中"运行最高优先级"未选中
计划任务仅在用户登录时运行,但是当用户注销任务时,似乎运行.我认为"运行用户是否登录"应该在用户未登录时运行任务.
我错过了什么?
我在Heroku上部署了一个Rails应用程序,Heroku调度程序附加组件成功地用于日常工作.
现在我想要一份每周工作,但是调度程序加载项不允许我每周一次选择.
有关如何实现这一目标的任何建议:
我有一个ScheduledThreadPoolExecutor,我用它来安排一个以固定速率运行的任务.我希望任务以指定的延迟运行最多10次,直到它"成功".在那之后,我不希望重试任务.所以基本上我需要停止运行计划任务,当我希望它被停止时,但不关闭ScheduledThreadPoolExecutor.知道我怎么做吗?
这是一些伪代码 -
public class ScheduledThreadPoolExecutorTest
{
public static ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(15); // no multiple instances, just one to serve all requests
class MyTask implements Runnable
{
private int MAX_ATTEMPTS = 10;
public void run()
{
if(++attempt <= MAX_ATTEMPTS)
{
doX();
if(doXSucceeded)
{
//stop retrying the task anymore
}
}
else
{
//couldn't succeed in MAX attempts, don't bother retrying anymore!
}
}
}
public void main(String[] args)
{
executor.scheduleAtFixedRate(new ScheduledThreadPoolExecutorTest().new MyTask(), 0, 5, TimeUnit.SECONDS);
}
}
Run Code Online (Sandbox Code Playgroud) 我意识到在以下线程中"回答"了这个问题:使用schtasks.exe为Scheduled Tasks指定运行目录
但是,我仍然无法理解答案,并确切了解结果对于我的情况会是什么样子.
我的schtasks命令看起来像这样:
Schtasks /Create /TR "C:\Program Files\Java\jre6\bin\javaw.exe main.MoveFile input.txt" /SC WEEKLY /TN mytask
我想指定"C:\ My Library"目录中的开头.在tr部分之前放置一个"\",填写"C:\ Program Files\Java\jre6\bin"的起始目录.
我已经搞砸了很多,但我似乎无法让它发挥作用.
我在重试任务时遇到问题,这是测试任务的样子
from celery.decorators import task
@task()
def add(x, y):
if not x or not y:
raise Exception("test error")
return x+y
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于如何重试装饰任务的文档,我发现这一切都是这样的:
self.retry(x,y, exc=exception, countdown=30)
Run Code Online (Sandbox Code Playgroud)
这似乎不适用于我的情况,因为没有self从方法传递的变量.
我现在尝试以下无效:
from celery.decorators import task
@task()
def add(x, y):
if not x or not y:
try:
raise Exception("test error")
except Exception, e:
add.retry([x, y], exc=e, countdown=30)
return x+y
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError("重试的kwargs参数不能为空.任务必须接受**kwargs,请参阅http://bit.ly/cAx3Bg ",)
我正在尝试使用ECS Fargate设置计划任务,但我无法弄清楚它为什么没有运行.我可以确认任务正常使用RunTask,但当我尝试按计划触发它时,我得到的是一堆'FailedInvocations',没有任何解释.
我知道虽然规则被触发所以这是一个好兆头.请参见下面的截图:
但每次触发时都会出现'FailedInvocation'.这是调度规则:
ecsEventRole只有ecs:runTask以下内容的默认权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunTask"
],
"Resource": [
"*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的预感说这ecsEventsRole没有足够的权限.我应该尝试给它那些ecsTaskExecutionRole吗?
谢谢
编辑:现在支持us-east-1区域.看评论.
我们正在尝试为我们的cron作业构建一个仪表板---- CF,Java,SQLServer等,以便我们可以看到最后运行的内容,结果是什么,以及它们何时被安排运行.
有没有办法使用CFAdmin API或一些未记录的<cfschedule>技巧来获取以下列表:
我们目前正在使用CF8,但将在几周内升级到CF9.
coldfusion scheduled-tasks cfadmin coldfusion-8 coldfusion-9
请参阅下面的伪代码
//Single or multiple Producers produce using below method
void Produce(object itemToQueue)
{
concurrentQueue.enqueue(itemToQueue);
consumerSignal.set;
}
//somewhere else we have started a consumer like this
//we have only one consumer
void StartConsumer()
{
while (!concurrentQueue.IsEmpty())
{
if (concurrentQueue.TrydeQueue(out item))
{
//long running processing of item
}
}
consumerSignal.WaitOne();
}
Run Code Online (Sandbox Code Playgroud)
我如何移植这种模式,我从远古时代就开始使用taskfactory创建的任务和net 4的新信号功能.换句话说,如果有人用net 4编写这个模式,它会是什么样子?伪代码很好.如你所见,我已经使用.net 4 concurrentQueue了.如何使用任务并可能使用一些新的信令机制.谢谢
通过Jon/Dan解决我的问题.甜.没有手动信号或while(true)或while(itemstoProcess)类型循环像过去那样
//Single or multiple Producers produce using below method
void Produce(object itemToQueue)
{
blockingCollection.add(item);
}
//somewhere else we have started a consumer like this
//this supports …Run Code Online (Sandbox Code Playgroud) 我是Akka的初学者.我需要每天在固定的时间安排一项任务,比如上午8点.我所知道的是如何定期安排任务
import akka.util.duration._
scheduler.schedule(0 seconds, 10 minutes) {
doSomething()
}
Run Code Online (Sandbox Code Playgroud)
在Akka一天中的固定时间安排任务的最简单方法是什么?
只需使用此功能就可以轻松完成我想要的操作.玩具实现看起来像
scheduler.schedule(0 seconds, 24 hours) {
val now = computeTimeOfDay()
val delay = desiredTime - now
scheduler.scheduleOnce(delay) {
doSomething()
}
}
Run Code Online (Sandbox Code Playgroud)
这并不难,但我介绍了一点竞争条件.事实上,考虑如果我在上午8点之前启动它会发生什么.外部闭合将开始,但到我计算时,delay我们可能会在上午8点之后.这意味着内部关闭 - 应该立即执行 - 将被推迟到明天,从而跳过执行一天.
有办法解决这种竞争条件:例如,我可以每12小时执行一次检查,而不是立即安排任务,将其发送给一次不接受多个任务的演员.
但可能,这已经存在于Akka或某些扩展中.
scheduled-tasks ×10
java ×2
akka ×1
amazon-ecs ×1
aws-fargate ×1
c# ×1
celery ×1
cfadmin ×1
coldfusion ×1
coldfusion-8 ×1
coldfusion-9 ×1
django ×1
heroku ×1
jsp ×1
pfx ×1
python ×1
scala ×1
scheduler ×1
scheduling ×1
servlets ×1
windows ×1