标签: scheduled-tasks

如何停止使用@Scheduled注释启动的计划任务?

我使用Spring Framework的@Scheduled注释创建了一个简单的计划任务.

 @Scheduled(fixedRate = 2000)
 public void doSomething() {}
Run Code Online (Sandbox Code Playgroud)

现在我想在不再需要时停止这项任务.

我知道在这个方法的开头可以有一个替代方法来检查一个条件标志,但是这不会停止执行这个方法.

Spring提供什么来阻止@Scheduled任务?

java spring scheduled-tasks

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

如何在.NET中每小时(或每小时的特定时间间隔)引发事件?

我正在开发一个小型网络爬虫,它将在系统托盘中运行,并在一小时内每小时抓取一个网站.

让.NET每小时或某个其他时间间隔提升事件以执行某项任务的最佳方法是什么.例如,我想根据时间每20分钟运行一次事件.该活动将在以下时间举行:

00:20
00:40
01:00
01:20
01:40
Run Code Online (Sandbox Code Playgroud)

等等.我能想到的最好的方法是在线程上创建一个循环,不断检查时间是否可以被给定的时间间隔整除,并在达到时间时引发回调事件.我觉得必须有一个更好的方法.

我会使用a Timer但是我更喜欢遵循"时间表"的东西,这些时间表按小时或类似的方式运行.

如果没有在Windows任务调度程序中设置我的应用程序,这可能吗?

更新:
我正在添加我的算法来计算计时器的时间间隔.此方法采用" minute"参数,即计时器应触发刻度的时间.例如,如果" minute"参数为20,则计时器将按照上述时间表中的间隔进行勾选.

int CalculateTimerInterval(int minute)
{
    if (minute <= 0)
        minute = 60;
    DateTime now = DateTime.Now;

    DateTime future = now.AddMinutes((minute - (now.Minute % minute))).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1);

    TimeSpan interval = future - now;

    return (int)interval.TotalMilliseconds;
}
Run Code Online (Sandbox Code Playgroud)

此代码使用如下:

static System.Windows.Forms.Timer t;
const int CHECK_INTERVAL = 20;


static void Main()
{
    t = new System.Windows.Forms.Timer();
    t.Interval = CalculateTimerInterval(CHECK_INTERVAL);
    t.Tick += new EventHandler(t_Tick);
    t.Start();
} …
Run Code Online (Sandbox Code Playgroud)

.net c# scheduled-tasks

30
推荐指数
2
解决办法
6万
查看次数

在Python 3中安排重复事件

我正在尝试安排重复事件在Python 3中每分钟运行一次.

我见过上课,sched.scheduler但我想知道是否还有其他方法可以做到.我听说提到我可以使用多个线程,我不介意这样做.

我基本上要求一些JSON,然后解析它; 它的价值随着时间而变化.

要使用sched.scheduler我必须创建一个循环来请求它安排甚至运行一小时:

scheduler = sched.scheduler(time.time, time.sleep)

# Schedule the event. THIS IS UGLY!
for i in range(60):
    scheduler.enter(3600 * i, 1, query_rate_limit, ())

scheduler.run()
Run Code Online (Sandbox Code Playgroud)

有什么其他方法可以做到这一点?

python timing scheduled-tasks python-3.x

29
推荐指数
7
解决办法
7万
查看次数

Windows任务计划程序 - 仅在窗口期间运行

我已经在Windows Scheduler中设置了一个任务(在Win Server 2008上).它工作得很好但是在高峰时段(当盒子被用于其他东西时)会给系统带来负担.我目前每15分钟就有一份工作.Can Task Sch.设置为每15分钟运行一次,但仅限于某个时间窗口.所以我可以把它设置为每15分钟运行一次,但是从下午5点到凌晨5点 - 并且从早上5点到下午5点都不运行?

scheduled-tasks

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

使用计时器在JSF托管bean中为计划任务生成线程

我想知道是否可以Timer在应用程序范围内使用bean.

例如,假设我想创建一个计时器任务,每天一次向每个注册会员发送一堆电子邮件.我试图尽可能多地使用JSF,我想知道这是否可以接受(我知道它有点奇怪).

到目前为止,我已经使用了上述所有内容了ServletContextListener.(我不想使用任何应用程序服务器或cron作业,我想在Web应用程序中保留上述内容.)

是否有一种聪明的JSF方式,或者我应该坚持使用旧模式?

jsf timer scheduled-tasks jsf-2

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

如何使用Timer类调用方法,执行某些操作,重置计时器,重复?

我是一名Java初学者,并且已经为这个问题提供了各种解决方案,并且已经让我自己打结了.我已经尝试过使用Threads,然后发现了这个Timer类,并且到目前为止没有成功.如果您可以使用main方法发布可执行代码,那么我可以看到它正常工作并从那里开始玩,那将是很棒的.

  1. 启动计划
  2. 呼叫 doSomething()
  3. 生成随机数并设置那么长的Timer.
  4. 当定时器关闭时,doSomething()再次呼叫.

可能使用这个:http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html

java timer scheduled-tasks

28
推荐指数
2
解决办法
13万
查看次数

PowerShell脚本不会作为Windows计划任务执行

我有一个PowerShell脚本(有效).在Windows任务计划程序中,我创建了一个要执行的新任务"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",将参数作为我的PS1脚本传递.当任务运行时,我得到一个上次运行结果0x1.

我更新了脚本,在脚本打开时写入日志文件,但没有发生.这几乎就像任务甚至无法打开Powershell.exe.

这听起来准确吗?问题是什么或我如何解决它?

powershell scheduled-tasks

28
推荐指数
2
解决办法
5万
查看次数

使用Windows调度程序运行jar文件

我有jar文件,我想从Windows 7中的Windows调度程序运行

我已经给出了路径java.exe/脚本和-jar c:\abc\ab.jar参数字段中的路径.

但它没有运行.我也在bat文件的帮助下尝试过,但它没有运行.运行jar文件需要做什么?

我的jar文件创建文件并更新数据库.

scheduled-tasks executable-jar windows-7

28
推荐指数
2
解决办法
5万
查看次数

Windows任务计划程序无法启动批处理文件任务

我有一个包含以下代码的批处理文件来停止并启动SQL Report服务:

net stop "SQL Server Reporting Services (MSSQLSERVER)" 

timeout /t 10

net start "SQL Server Reporting Services (MSSQLSERVER)"
Run Code Online (Sandbox Code Playgroud)

我已将计划任务设置为每天运行,它当前以SYSTEM身份运行,并设置了最高权限.我在动作上设置了文件夹选项的开始,一切似乎都正确设置.但是,当我运行任务时似乎没有任何事情发生,它表示任务已经运行但我无法看到该服务已按原样重新启动.

有人能指引我到我错过的地方吗?谢谢

batch-file scheduled-tasks

28
推荐指数
6
解决办法
10万
查看次数

从Spring 3迁移到Spring 4 - org.springframework.scheduling.quartz.CronTriggerBean

我正试图从春季3.0.5迁移到4.1.X春季.

Spring 3的Class命名为"org.springframework.scheduling.quartz.CronTriggerBean"

但是Spring 4不包含这个类名.

[5/28/15 20:10:16:798 EDT] 00000092 ClassPathXmlA W org.springframework.context.support.AbstractApplicationContext __refresh在上下文初始化期间遇到异常 - 取消刷新尝试org.springframework.beans.factory.CannotLoadBeanClassException:找不到类[org.springframework.scheduling.quartz.CronTriggerBean]用于在类路径资源[config/spring/WxsCacheContext.xml]中定义的名称为'beanIdName'的bean; 嵌套异常是org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1328)中的java.lang.ClassNotFoundException:org.springframework.scheduling.quartz.CronTriggerBean

我尝试了类似"弹簧支持"的替代方案,它具有相同的类别.但没有运气.

得到那个罐子之后,它给出了关于石英的错误

[5/28/15 15:37:02:665 EDT] 0000006e SystemOut O ERROR(?:?) - java.lang.Exception:SpringUtils.getSpringBean(hostnameVerifierSetter)中的Bean错误消息:无法初始化组定义.组资源名称[classpath*:beanRefFactory.xml],工厂密钥[beanContext]; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在URL [file:/ C:/ Program%20Files%20(x86)/ IBM/WebSphere/AppServer/profiles/AppSrv01 /中定义的名称为'beanContext'的bean创建错误installedApps/cellName/Project.ear/configurations/beanRefFactory.xml]:构造函数的Bean实例化失败; 嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.context.support.ClassPathXmlApplicationContext]:构造函数抛出异常; 嵌套异常是java.lang.NoClassDefFoundError:org.quartz.impl.JobDetailImpl

java spring spring-mvc scheduled-tasks quartz-scheduler

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