Interface JavaScriptJobManager
-
- All Superinterfaces:
java.io.Serializable
- All Known Implementing Classes:
JavaScriptJobManagerImpl
public interface JavaScriptJobManager extends java.io.Serializable
A manager forJavaScriptJob
s.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
JavaScriptJobManager.JavaScriptJobFilter
Simple filter interface.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
addJob(JavaScriptJob job, Page page)
Adds the specified job to this job manager, assigning it an ID.JavaScriptJob
getEarliestJob()
Gets the earliest job for this manager.JavaScriptJob
getEarliestJob(JavaScriptJobManager.JavaScriptJobFilter filter)
Gets the earliest job for this manager.int
getJobCount()
Returns the number of active jobs, including jobs that are currently executing and jobs that are waiting to execute.int
getJobCount(JavaScriptJobManager.JavaScriptJobFilter filter)
Returns the number of active jobs, including jobs that are currently executing and jobs that are waiting to execute.java.lang.String
jobStatusDump(JavaScriptJobManager.JavaScriptJobFilter filter)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Utility method to report the current job status.void
removeAllJobs()
Removes all jobs from the execution queue.void
removeJob(int id)
Removes the specified job from the execution queue.boolean
runSingleJob(JavaScriptJob job)
Runs the provided job if it is the right time for it.void
shutdown()
Shuts down this job manager and stops all of its jobs.void
stopJob(int id)
Stops the specified job and removes it from the execution queue, not even allowing the job to finish if it is currently executing.int
waitForJobs(long timeoutMillis)
Blocks until all active jobs have finished executing.int
waitForJobsStartingBefore(long delayMillis)
Blocks until all jobs scheduled to start executing before(now + delayMillis)
have finished executing.int
waitForJobsStartingBefore(long delayMillis, JavaScriptJobManager.JavaScriptJobFilter filter)
Blocks until all jobs scheduled to start executing before(now + delayMillis)
have finished executing.
-
-
-
Method Detail
-
getJobCount
int getJobCount()
Returns the number of active jobs, including jobs that are currently executing and jobs that are waiting to execute.- Returns:
- the number of active jobs
-
getJobCount
int getJobCount(JavaScriptJobManager.JavaScriptJobFilter filter)
Returns the number of active jobs, including jobs that are currently executing and jobs that are waiting to execute. Only jobs passing the filter are counted.- Parameters:
filter
- the JavaScriptJobFilter- Returns:
- the number of active jobs
-
addJob
int addJob(JavaScriptJob job, Page page)
Adds the specified job to this job manager, assigning it an ID. If the specified page is not currently loaded in the window which owns this job manager, the operation fails and this method returns0
.- Parameters:
job
- the job to add to the job managerpage
- the page which is trying to add the job- Returns:
- the ID assigned to the job
-
removeJob
void removeJob(int id)
Removes the specified job from the execution queue. This doesn't interrupt the job if it is currently running.- Parameters:
id
- the ID of the job to be removed from the execution queue
-
removeAllJobs
void removeAllJobs()
Removes all jobs from the execution queue. This doesn't interrupt any jobs that may be currently running.
-
stopJob
void stopJob(int id)
Stops the specified job and removes it from the execution queue, not even allowing the job to finish if it is currently executing.- Parameters:
id
- the ID of the job to be stopped
-
waitForJobs
int waitForJobs(long timeoutMillis)
Blocks until all active jobs have finished executing. If a job is scheduled to begin executing after(now + timeoutMillis)
, this method will wait fortimeoutMillis
milliseconds and then returnfalse
.- Parameters:
timeoutMillis
- the maximum amount of time to wait (in milliseconds); may be negative, in which case this method returns immediately- Returns:
- the number of background JavaScript jobs still executing or waiting to be executed when this
method returns; will be
0
if there are no jobs left to execute
-
waitForJobsStartingBefore
int waitForJobsStartingBefore(long delayMillis)
Blocks until all jobs scheduled to start executing before(now + delayMillis)
have finished executing. If there is no background JavaScript task currently executing, and there is no background JavaScript task scheduled to start executing within the specified time, this method returns immediately -- even if there are tasks scheduled to be executed after(now + delayMillis)
.- Parameters:
delayMillis
- the delay which determines the background tasks to wait for (in milliseconds); may be negative, as it is relative to the current time- Returns:
- the number of background JavaScript jobs still executing or waiting to be executed when this
method returns; will be
0
if there are no jobs left to execute
-
waitForJobsStartingBefore
int waitForJobsStartingBefore(long delayMillis, JavaScriptJobManager.JavaScriptJobFilter filter)
Blocks until all jobs scheduled to start executing before(now + delayMillis)
have finished executing. If there is no background JavaScript task currently executing, and there is no background JavaScript task scheduled to start executing within the specified time, this method returns immediately -- even if there are tasks scheduled to be executed after(now + delayMillis)
.- Parameters:
delayMillis
- the delay which determines the background tasks to wait for (in milliseconds); may be negative, as it is relative to the current timefilter
- the JavaScriptJobFilter- Returns:
- the number of background JavaScript jobs still executing or waiting to be executed when this
method returns; will be
0
if there are no jobs left to execute
-
shutdown
void shutdown()
Shuts down this job manager and stops all of its jobs.
-
getEarliestJob
JavaScriptJob getEarliestJob()
Gets the earliest job for this manager.- Returns:
null
if none
-
getEarliestJob
JavaScriptJob getEarliestJob(JavaScriptJobManager.JavaScriptJobFilter filter)
Gets the earliest job for this manager.- Parameters:
filter
- the JavaScriptJobFilter- Returns:
null
if none
-
runSingleJob
boolean runSingleJob(JavaScriptJob job)
Runs the provided job if it is the right time for it.- Parameters:
job
- the job to run- Returns:
- returns true if the job was run.
-
jobStatusDump
java.lang.String jobStatusDump(JavaScriptJobManager.JavaScriptJobFilter filter)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Utility method to report the current job status. Might help some tools.- Parameters:
filter
- the JavaScriptJobFilter- Returns:
- the job status report as string
-
-