定时任务
我们可以在指定的时间以指定的频率执行任务。
注意,如果定时任务中使用了共享表或插件中的函数,启动脚本(startup.dos)中必须包含共享表的定义以及加载插件的脚本。
相关函数/命令:
scheduleJob:创建一个定时任务。
定时执行一个函数:
$ def f():1+2;
$ scheduleJob(`daily, "Daily Job", f, 17:23m, 2018.01.01, 2018.12.31, 'D');
daily
$ scheduleJob(`weekly, "Weekly Job", f, 17:30m, 2018.01.01, 2018.12.31, 'W', 2);
weekly
定时执行一个脚本:
$ scheduleJob(`monthly, "Monthly Job", run{"C:\DolphinDB\script\monthlyJob.dos"}, 17:23m, 2018.01.01, 2018.12.31, 'M', 1);
monthly
这里我们用部分应用run{<script>},因为 shceduleJob 的第三个参数必须是无参数的函数。
$ getJobMessage(`daily);
2018-02-08 17:23:27.166296 Start the job [daily]: Daily Job 1
2018-02-08 17:23:27.167303 The job is done.
$ getJobReturn(`daily);
3
我们可以在一天内执行多次定时任务:
$ scheduleJob(`Trading, "Generate Trading Tickets", run{"C:\DolphinDB\script\TradingTickets.dos"}, [09:25m, 12:00m, 02:00m, 15:50m], 2018.01.01, 2018.12.31, 'D');
Trading
在这种情况下,每次执行定时任务,任务ID都是不一样的。
我们可以在每周的工作日执行定时任务:
$ scheduleJob(`PnL, "Calculate Profit & Loss", run{"C:\DolphinDB\script\PnL.dos"}, [12:00m, 02:00m, 14:50m], 2018.01.01, 2018.12.31, 'W', [2,3,4,5,6]);
PnL
getScheduledJobs:以表格的形式显示定时任务。
$ getScheduledJobs();
userId |
jobId |
jobDesc |
startDate |
endDate |
frequency |
scheduleTime |
days |
---|---|---|---|---|---|---|---|
root |
PnL |
Calculate Profit &… |
2018.01.01 |
2018.12.31 |
W |
12:00m 02:00m 14:50m |
2 3 4 5 6 |
root |
TradingTicket |
Generate Trading T… |
2018.01.01 |
2018.12.31 |
W |
09:25m 12:00m 02:0… |
2 3 4 5 6 |
root |
daily |
Daily Job |
2018.01.01 |
2018.12.31 |
D |
17:23m |
|
root |
monthly |
Monthly Job |
2018.01.01 |
2018.12.31 |
M |
17:23m |
1 |
root |
weekly |
Weekly Job |
2018.01.01 |
2018.12.31 |
W |
17:30m |
2 |
deleteScheduledJob:删除定时任务。
$ deleteScheduledJob(`monthly)
$ deleteScheduledJob(`weekly)
$ deleteScheduledJob(`daily);
$ getScheduledJobs();
userId |
jobId |
jobDesc |
startDate |
endDate |
frequency |
scheduleTime |
days |
---|---|---|---|---|---|---|---|
root |
PnL |
Calculate Profit &… |
2018.01.01 |
2018.12.31 |
W |
12:00m 02:00m 14:50m |
2 3 4 5 6 |
root |
TradingTicket |
Generate Trading T… |
2018.01.01 |
2018.12.31 |
W |
09:25m 12:00m 02:0… |
2 3 4 5 6 |