Technical Resources


Flux Flux

Flux or a Job Scheduler Server?

June 2008



When you need job scheduling functionality, there is one simple question that will guide you on whether to use an embeddable job scheduler or a stand-alone job scheduler server such as CONTROL-M or AutoSys.


Are you developing a Java application?



If the answer is Yes, we feel your choice is clear. Use an embeddable Java job scheduler like Flux or Quartz.


If your answer is No, your choice is also clear. Use a stand-alone job scheduler server such as CONTROL-M or AutoSys.


Here's why.

If you're developing a Java application, the benefits of having an embeddable Java job scheduler include:


  1. Simplicity. When your Java application starts, so does your job scheduler. Likewise, when your application shuts down, your job scheduler shuts down too. As such, you don't need to:

    a. Start the job scheduler server separately from your Java application.

    b. Write code to check if the job scheduler server is running or reachable over the network.

    c. Write code to catch network exceptions when networking errors occur.


  2. Private Development Space. During development, an embeddable Java job scheduler provides a private environment for development and testing. You don’t have a shared job scheduling space where developers might step on each others’ toes.


    An embeddable Java job scheduler is lightweight enough to be instantiated when your application starts. Thus, each instance of your application receives its own Java job scheduler instance for you to manipulate on your own — with a private, empty job database or even a private, pre-populated job database.


    This kind of separation makes Java development much more natural and productive.


  3. Speed. An embeddable Java job scheduler is much faster than a job scheduler server. You can submit jobs faster because there is no network overhead. You can fire jobs faster because they fire in your JVM, again with no network overhead.


  4. No IT Administration Needed. An embeddable Java job scheduler is basically a threaded class library inside your application. You don’t need the IT staff to monitor your jobs. Your application monitors your jobs.


If you are not developing a Java application, use a stand-alone job scheduler server to provide suitable configuration and control.


Standalone job scheduler servers have tools for configuring and controlling jobs. These tools are targeted at IT administration users. They do not require users to configure the job scheduler and jobs using Java code or user interfaces that are specifically designed for Java developers.


Caveat: Flux, an embeddable Java job scheduler, has an Operations Console suitable for job control that is targeted at both IT administration users and Java developers. Furthermore, if an embeddable job scheduler's networking features are used, some of the advantages above are nullified.


The following is a listing of the most popular Java job schedulers and stand-alone job scheduler servers.


Embeddable Java Job Schedulers



Stand-alone Job Scheduler Servers



Summary


If you first answer the question — Are you developing a Java application? — you are likely to be guided directly to where you need to be.


Because embedded Java job schedulers are usually not visible to the organization, the decision for choosing a job scheduler is often kept to Java development, where it would naturally belong. Just like the IT administration staff would not necessarily consult the Java developers during their job scheduler selection process, it is natural that the Java development team would not consult the IT administration staff about their embedded Java job scheduling choice, especially when that choice is all but invisible to the IT administration team.


We hope the considerations above help out with your decision.


The Flux Team

June 2008