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:
  • periodrun 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
    Nowrun immediately
    Nonerun 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 n1|n2|, 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:
  • AutoRemoveFalseremove task after its last scheduled run
    NotificationFunction Automatichow to provide notifications
    TimeZoneAutomatictime 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 all

Basic Examples  (4)

Create a scheduled task in a local session:

The Print output goes to the Messages window.

Delete the task:

Create a scheduled task on a separate kernel:

The Print output goes to the Messages window.

Delete the task:

Create a scheduled cloud task that emails the task owner the temperature daily for the next month:

Delete the task:

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:

Retrieve the list of past results:

Delete the task:

Scope  (9)

Time Specifications  (9)

Create a task with no schedule:

Trigger the task manually:

Delete the task:

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:

Remove the deployed task:

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:

Remove the task:

Deploy a daily task that sends a countdown email ending once the year is over:

To test the task, trigger it to run now:

Remove the task:

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:

Remove the task:

Create a task that runs at 7am on certain days of the week:

Confirm the next run date is as expected:

Remove the task:

Create a scheduled cloud task that logs the opening price of a financial instrument on weekdays using a "cronspec" specification:

Delete the task:

Create a scheduled cloud task that updates a time stamp in the cloud once a day:

Get the current time stamp:

Run the scheduled task cloud object using TaskExecute:

The time stamp has been updated:

Delete the task:

Generalizations & Extensions  (1)

Use TaskSuspend to suspend scheduled executions of a cloud-scheduled task:

Delete the task:

Options  (1)

NotificationFunction  (1)

Notifications allow indicated parties to receive status messages on task evaluation. Deploy a task that notifies multiple parties after every run:

Trigger the task to run asynchronously:

Trigger the task to run again:

Delete the task:

Applications  (1)

Create an application that sends an email alert based on a scheduled task:

Make a scheduled task that evaluates at 18:00 every day and checks tomorrow's moon phase:

Delete the task:

Possible Issues  (2)

Time specification involving numeric values may appear to be ambiguous:

Resolve the ambiguity by providing an explicit period and repeat count:

Delete the task:

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:

Delete the task:

To avoid this, control the start date so it does not fall on a potentially problematic day toward the end of the month:

Wolfram Research (2014), ScheduledTask, Wolfram Language function, https://reference.wolfram.com/language/ref/ScheduledTask.html (updated 2017).

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

BibTeX

@misc{reference.wolfram_2024_scheduledtask, author="Wolfram Research", title="{ScheduledTask}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/ScheduledTask.html}", note=[Accessed: 29-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_scheduledtask, organization={Wolfram Research}, title={ScheduledTask}, year={2017}, url={https://reference.wolfram.com/language/ref/ScheduledTask.html}, note=[Accessed: 29-March-2024 ]}