标签: scheduled-tasks

JSP/Servlet Web应用程序中的后台计时器任务

我希望每隔6小时从订阅中检索并将订阅源存储到DB.我想在后台有一个计时器线程来完成这个任务.

什么是最好的方式?普通的计时器线程或Quartz API?

java jsp servlets scheduled-tasks background-process

21
推荐指数
1
解决办法
2万
查看次数

在Windows Server 2008 R2中计划任务

我已安排使用任务计划程序(TS)运行SSIS作业的任务.它配置为以属于Admin组的用户身份运行.

安全性是"运行是否用户登录"选中"不存储密码"选中"运行最高优先级"未选中

计划任务仅在用户登录时运行,但是当用户注销任务时,似乎运行.我认为"运行用户是否登录"应该在用户未登录时运行任务.

我错过了什么?

scheduled-tasks windows-server-2008

21
推荐指数
4
解决办法
6万
查看次数

如何在Heroku上安排"每周"工作?

我在Heroku上部署了一个Rails应用程序,Heroku调度程序附加组件成功地用于日常工作.

现在我想要一份每周工作,但是调度程序加载项不允许我每周一次选择.

有关如何实现这一目标的任何建议:

  • 我过去曾尝试过使用rufus-scheduler,但它给我带来了一些问题,所以这不是一个选择.详情请见此处.
  • 我正在考虑在日常工作中检查当天的事情.有没有人尝试过,并有反馈或知道该方法的问题?
  • 其他想法非常感谢.

ruby-on-rails heroku scheduled-tasks

21
推荐指数
3
解决办法
8206
查看次数

一旦我认为它已经完成,如何在ScheduledThreadPoolExecutor中停止任务

我有一个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)

java scheduling scheduler scheduled-tasks

21
推荐指数
3
解决办法
3万
查看次数

在windows中的schtasks命令中指定"start-in"目录

我意识到在以下线程中"回答"了这个问题:使用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"的起始目录.

我已经搞砸了很多,但我似乎无法让它发挥作用.

windows scheduled-tasks

20
推荐指数
3
解决办法
6万
查看次数

使用Django-Celery重试任务 - Django/Celery

我在重试任务时遇到问题,这是测试任务的样子

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 ",)

python django scheduled-tasks celery django-celery

20
推荐指数
2
解决办法
1万
查看次数

ECS Fargate计划任务未运行

我正在尝试使用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区域.看评论.

scheduled-tasks amazon-web-services amazon-ecs aws-fargate

20
推荐指数
3
解决办法
4111
查看次数

如何在ColdFusion中获取计划任务列表和上次运行结果?

我们正在尝试为我们的cron作业构建一个仪表板---- CF,Java,SQLServer等,以便我们可以看到最后运行的内容,结果是什么,以及它们何时被安排运行.

有没有办法使用CFAdmin API或一些未记录的<cfschedule>技巧来获取以下列表:

  1. 安排了哪些任务?
  2. 最后的运行时间是什么?
  3. 它成功了吗?
  4. 什么时候安排再次运行?

我们目前正在使用CF8,但将在几周内升级到CF9.

coldfusion scheduled-tasks cfadmin coldfusion-8 coldfusion-9

19
推荐指数
1
解决办法
9205
查看次数

使用blockingcollection和tasks .net 4 TPL的经典生产者消费者模式

请参阅下面的伪代码

//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)

c# multithreading scheduled-tasks pfx task-parallel-library

19
推荐指数
2
解决办法
3万
查看次数

使用Akka在一天中的固定时间安排任务

我是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或某些扩展中.

scala scheduled-tasks akka

19
推荐指数
3
解决办法
1万
查看次数