ScheduledTask
ScheduledTask[expr,timespec]
represents a scheduled task to be evaluated on the schedule defined by timespec.
Details and Options
- CloudDeploy[ScheduledTask[…]] deploys a scheduled task to be executed in the cloud.
- SessionSubmit, LocalSubmit and CloudSubmit submit scheduled tasks for background evaluation in the current session, on the local system or in the cloud.
- Submitted tasks can be controlled using TaskSuspend, TaskResume, etc.
- The argument expr can be the Wolfram Language code to be evaluated, or a CloudObject or File containing Wolfram Language input.
- The following time period specification can be given:
-
"Hourly" run once an hour "Daily" run once a day "Weekly" run once a week "Monthly" run once a month "Yearly" run once a year Quantity[...] run at a specified time interval - The following timespec specifications can be given:
-
period run once every period {period} run once after the period {period, count} run only count times ever - The following specifications can be given to limit when the task can be run:
-
{start,timespec} commence runs on date start {timespec,end} end runs on date end {start,timespec,end} run between dates start and end - start and end parameters should be given as a DateObject or other time specification.
- Additional timespec specifications can be given:
-
DateObject[patt] run at times matching the specified pattern "cronspec" run at times specified by a Unix cron specification Now run immediately None run on demand only - In DateObject[patt], the pattern patt has the form {y,m,d,h,m,s}, where later elements can be dropped, and where each element can be a literal integer, a choice of integers of the form n1n2…, or _ representing any possible value. For the day element, literal days can be replaced by symbols indicating a day of the week, such as Monday.
- The following options can be given:
-
AutoRemove False remove task after its last scheduled run NotificationFunction Automatic how to provide notifications TimeZone Automatic time zone for scheduling - For purposes of NotificationFunction, a task is considered to have failed if its output is $Failed or a Failure object.
- In the cloud, the precise times at which scheduled tasks are run are typically determined by load-balancing requirements.
- The minimum time between repetitions of a task in the cloud is determined by cloud configuration and policies and will typically be a certain fraction of an hour.
Examples
open allclose allBasic Examples (4)
Create a scheduled task in a local session:
The Print output goes to the Messages window.
Create a scheduled task on a separate kernel:
The Print output goes to the Messages window.
Create a scheduled cloud task that emails the task owner the temperature daily for the next month:
Deploy a scheduled cloud task that logs the date and temperature hourly:
Run the task manually to test it without waiting for the next scheduled run:
Scope (9)
Time Specifications (9)
Create a task with no schedule:
Submit a task in the current kernel session that runs immediately using a timespec of Now:
The task is deleted automatically:
Submit a task in the cloud that runs immediately:
After the task runs, it no longer exists in the cloud:
Deploy a task with no schedule:
A deployed task (made with CloudDeploy, not CloudSubmit) still exists in the cloud after running:
Create a task that runs every second for 10 times, showing its progress as it runs:
Deploy a daily task that sends a countdown email starting tomorrow:
To test the task, trigger it to run now:
Deploy a daily task that sends a countdown email ending once the year is over:
To test the task, trigger it to run now:
Deploy a daily task that sends a countdown email starting tomorrow and ending once the year is over:
To test the task, trigger it to run now:
Create a task that runs at 7am on certain days of the week:
Confirm the next run date is as expected:
Create a scheduled cloud task that logs the opening price of a financial instrument on weekdays using a "cronspec" specification:
Create a scheduled cloud task that updates a time stamp in the cloud once a day:
Run the scheduled task cloud object using TaskExecute:
Generalizations & Extensions (1)
Use TaskSuspend to suspend scheduled executions of a cloud-scheduled task:
Options (1)
Applications (1)
Possible Issues (2)
Time specification involving numeric values may appear to be ambiguous:
Resolve the ambiguity by providing an explicit period and repeat count:
Named periods "Monthly" and "Yearly" that align to the calendar may skip a run if the day of the month on which they are deployed does not exist on the next expected run, such as when a "Yearly" task is deployed on February 29:
To avoid this, control the start date so it does not fall on a potentially problematic day toward the end of the month:
Text
Wolfram Research (2014), ScheduledTask, Wolfram Language function, https://reference.wolfram.com/language/ref/ScheduledTask.html (updated 2017).
CMS
Wolfram Language. 2014. "ScheduledTask." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/ScheduledTask.html.
APA
Wolfram Language. (2014). ScheduledTask. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ScheduledTask.html