我一直在寻找有关如何实现一个允许你在Go中的某个时间执行任务的函数的例子,但我找不到任何东西.
我自己实现了一个,我在答案中分享它,所以其他人可以为自己的实现提供参考.
我正在为python寻找一个企业任务调度程序,就像quartz用于Java.要求:
有什么建议?是否有特定于python的东西,或者是否可能(甚至是好的)从python接口到Quartz.
对于我的应用程序,我创建作业并使用CronTriggers安排它们.每个作业只有一个触发器,作业名称和触发器名称都相同.没有工作共享触发器.
现在当我创建像这样的"0/1****?"的cron触发器时 它指示作业每秒执行一次,它工作得很好.
当我第一次暂停工作时,问题就出现了:
scheduler.pauseJob(jobName, jobGroup);
Run Code Online (Sandbox Code Playgroud)
然后让我们说50秒后恢复工作:
scheduler.resumeJob(jobName, jobGroup);
Run Code Online (Sandbox Code Playgroud)
我看到的是,在这50秒内,作业没有按要求执行.但是,当我恢复工作的那一刻,我同时看到了50份执行工作!
我认为这是由于失火指令的默认设置,但即使在创建时将触发器的失火指示设置为:
trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
Run Code Online (Sandbox Code Playgroud)
同样的事情发生了.任何人都可以建议一种解决方法吗?
.NET 4有一个Class - Task.这很有趣,我想开始使用它.例如,我想创建一个非常简单的基于任务的文件下载器,可以在每次下载时取消.任何人都可以向我介绍一些这样做的示例代码吗?我想有一个正在运行的任务列表,并希望能够取消它们中的任何一个.
PS Code示例可能无法正常运行我只想知道如何以最佳方式使用这些东西.
现在我的配置是我的调度程序:
<task:scheduled ref="task" method="run" cron="0 45 22 * * *" />
Run Code Online (Sandbox Code Playgroud)
什么时候执行这个任务?以及如何改变它来每分钟完成这项任务
我可以安排任务在MySQL中以指定的时间间隔运行吗?
我有一个库存MySQL数据库.结构如下:
table_1 fields: itmcode, avgcost
table_2 fields: itmcode(FK to table_1(itmcode)), quantity
Run Code Online (Sandbox Code Playgroud)
报告的基础是我希望过去的日期明确的库存评估详细信息.
将新购买过帐到系统时avgcost,quantity会更改和字段.我可以运行查询以查看当前的股票估值,但我希望能够在之前的日期查看股票估值.我怎么做?对于数量,我可以添加销售并从当前日期向后扣除购买,直到报告需要的任何日期,但avgcost是最新的,因为每次发布购买时都会更新.
我想知道是否可以执行自动每日转储,类似于:
SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval
FROM table_1
JOIN table_2 ON table_1.itmcode = table_2.itmcode
Run Code Online (Sandbox Code Playgroud)
这项任务是否可以直接在MySQL中安排,还是有其他解决方案?
作为稍微复杂的脚本的一部分,我需要告诉服务器运行模拟.通常,我会这样做ssh user@server 'simulation/script'.但是,这样做会使ssh会话保持活着直到'simulation/script'完成,这对我来说是不可取的.
我最近了解了这个at命令,它似乎很适合我的问题.
我现在要做的是ssh到我的服务器,at我的模拟脚本在5秒内运行(ssh连接关闭的时间已经足够).因此,一旦ssh连接在5秒内关闭,服务器将启动模拟,而不需要ssh连接保持活动状态.
我遇到的麻烦是at为了安排工作所需的时间表达"从现在起5秒"
我尝试了以下时间表达式,所有这些都给了我错误:
now + 5 seconds
now + 5 sec
now + 5 s
now + 5seconds
now + 5sec
now + 5 s
now+5sec
now+5seconds
now+5s
Run Code Online (Sandbox Code Playgroud)
如何at"从现在起5秒钟" 让我的命令运行?
有些任务从文件中读取,执行一些处理并写入文件.这些任务将根据依赖性进行调度.此外,任务可以并行运行,因此需要优化算法以串行运行相关任务,并尽可能并行运行.
例如:
因此,运行此方法的一种方法是并行运行1,2和4.其次是3.
另一种方式可以运行1然后并行运行2,3和4.
另一个可以串行运行1和3,并行运行2和4.
有任何想法吗?
我想延迟做一些事情,就像设置倒计时器一样,在一段时间后"做一件事".
我希望我的其余程序在我等待的时候继续运行,所以我尝试自己Thread创建一个包含一分钟延迟的程序:
public class Scratch {
private static boolean outOfTime = false;
public static void main(String[] args) {
Thread countdown = new Thread() {
@Override
public void run() {
try {
// wait a while
System.out.println("Starting one-minute countdown now...");
Thread.sleep(60 * 1000);
// do the thing
outOfTime = true;
System.out.println("Out of time!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
countdown.start();
while (!outOfTime) {
try {
Thread.sleep(1000);
System.out.println("do other stuff here");
} catch (InterruptedException e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud)