Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer implemented method for scheduling a new task, the method comprising: receiving task data in respect of the new task, the task data comprising at least information enabling the new task to be uniquely identified and a target runtime for the new task; recording the received task data in a data structure; determining whether a job configured to execute tasks out of the data structure has already been registered with an underlying job scheduler; in response to determining that the job has not already been registered with the underlying job scheduler, registering the job with the underlying job scheduler for execution at or about the target runtime of the new task; in response to determining that the job has already been registered with the underlying job scheduler: determining whether the target runtime for the new task is before a current runtime for the job, in response to determining that the target runtime for the new task is before the current runtime for the job, updating the current runtime for the job within the underlying job scheduler to be at or about the target runtime of the new task, in response to determining that the target runtime for the new task is not before the current runtime for the job, maintaining the current runtime for the job; wherein, when the job is executed by the underlying job schedule, the job identifies within the data structure one or more tasks which have a runtime that is at or before a current time, causes the one or more tasks to be executed, and in response to a determination that at least one pending task still remains within the data structure re-registers with the underlying job scheduler with a runtime that is at or about an earliest runtime of pending tasks within the data structure.
2. The computer implemented method of claim 1 , wherein determining whether the target runtime for the new task is before the current runtime for the job comprises: comparing the target runtime of the new task with target runtimes of any existing scheduled tasks stored in the data structure; and responsive to the target runtime of the new task being earlier than the target runtimes of any existing scheduled tasks stored in the data structure, determining that the target runtime for the new task is before the current runtime for the job.
3. The computer implemented method of claim 1 , wherein the information enabling the new task to be uniquely identified comprises context data in respect of the new task.
4. The computer implemented method of claim 3 , wherein the method further comprises processing the context data to generate a unique key in respect of the new task.
5. The computer implemented method of claim 4 , wherein processing the context data to generate the unique key in respect of the new task comprises generating a cryptographic hash of the context data and using the cryptographic has as the unique key for the new task.
6. The computer implemented method of claim 1 , wherein the task data received in respect of the new task comprises a payload defining one or more actions to be performed when the new task is run.
7. The computer implemented method of claim 1 , wherein the job causing the one or more tasks to be executed comprises, for each task of the one or more tasks, communicating a payload associated with that task to a client that initially caused storage of the task in the data structure.
8. The computer implemented method of claim 1 , wherein when the job executes a given task of the one or more tasks, executing the given task comprises: receiving a run result for the given task; storing the run result for the given task in the data structure; and responsive to the run result of the given task indicating that the given task needs to be rescheduled, rescheduling the given task by storing a new target runtime for the given task in the data structure.
9. The computer implemented method of claim 1 , wherein when the job executes a given task of the one or more tasks, executing the given task comprises recording information in respect of the running of the given task in the data structure.
10. A system for scheduling a new task, the system comprising: one or more processors; one or more non-transitory computer-readable storage media storing sequences of instructions which, when executed by the one or more processors, cause the one or more processors to: receive task data in respect of the new task, the task data comprising at least information enabling the new task to be uniquely identified and a target runtime for the new task; record the received task data in a data structure; determine whether a job configured to execute tasks out of the data structure has already been registered with an underlying job scheduler; in response to determining that the job has not already been registered with the underlying job scheduler, register the job with the underlying job scheduler for execution at or about the target runtime of the new task; in response to determining that the job has already been registered with the underlying job scheduler: determine whether the target runtime for the new task is before a current runtime for the job, in response to determining that the target runtime for the new task is before the current runtime for the job, update the current runtime for the job within the underlying job scheduler to be at or about the target runtime of the new task, in response to determining that the target runtime for the new task is not before the current runtime for the job, maintain the current runtime for the job; wherein, when the job is executed by the underlying job schedule, the job identifies within the data structure one or more tasks which have a runtime that is at or before a current time, causes the one or more tasks to be executed, and in response to a determination that at least one pending task still remains within the data structure re-registers with the underlying job scheduler with a runtime that is at or about an earliest runtime of pending tasks within the data structure.
11. The system of claim 10 , wherein determining whether the target runtime for the new task is before the current runtime for the job comprises: comparing the target runtime of the new task with target runtimes of any existing scheduled tasks stored in the data structure; and responsive to the target runtime of the new task being earlier than the target runtimes of any existing scheduled tasks stored in the data structure, determining that the target runtime for the new task is before the current runtime for the job.
12. The system of claim 10 , wherein the information enabling the new task to be uniquely identified comprises context data in respect of the new task.
13. The system of claim 12 , wherein the instructions further cause the one or more processors to process the context data to generate a unique key in respect of the new task.
14. The system of claim 13 , wherein processing the context data to generate the unique key in respect of the new task comprises generating a cryptographic hash of the context data and using the cryptographic has as the unique key for the new task.
15. The system of claim 10 , wherein the task data received in respect of the new task comprises a payload defining one or more actions to be performed when the new task is run.
16. The system of claim 10 , wherein the job causing the one or more tasks to be executed comprises, for each task of the one or more tasks, communicating a payload associated with that task to a client that initially caused storage of the task in the data structure.
17. The system of claim 10 , wherein when the job executes a given task of the one or more tasks the instructions further cause the one or more processors to: receive a run result for the given task; store the run result for the given task in the data structure; and responsive to the run result of the given task indicating that the given task needs to be rescheduled, reschedule the given task by storing a new target runtime for the given task in the data structure.
18. The systems of claim 10 , wherein when the job executes a given task, the instructions further cause the one or more processors to record information in respect of the running of the given task in the data structure.
Unknown
January 24, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.