Hello developers,
I am happy to annouce the first release of TimeMachine Scheduler is available for you to download here:
https://bitbucket.org/timemachine/scheduler/downloads
Our first release of the scheduler comes with many features ready to use already. I will briefly describe
them here.
Out of the box, you can use it as an Unix Crontab system replacement. Since it's Java based, you can run it in Windows as well.You may pass a config file that loos like this and kick of the scheduler server to execute any OS commands or scripts you wish:
timemachine.scheduler.userservice.crontab.class = timemachine.scheduler.userservice.CrontabService
CrontabService.01 = 0 0 * * * ? | sh -c echo "Hourly task begins."
CrontabService.02 = 0/5 * * * * ? | sh -c echo "Heart beat."
The scheduler has flexible configuration and allow full control on the job executions settings. For example you may configure the job task thread pool to be dynamic, so that it only creates threads when there are jobs to be run, else the pool size will shrink. Or you can even create multiple thread pools and match your jobs, effectively separated them in running Queues.
Besides using external native commands, the scheduler also let you write your own job tasks. You can write new job task in either Java, JavaScript or Groovy scripting language. We package the optional Groovy engine in our distribution so it can be more convenient to write your own job, without even the need to re-compile source files, nor restart the scheduler instance!
The scheduler comes with 3 built-in Schedule implementations that you may use to configure how often a job task runs. There is a RepeatSchedule that runs job in a fixed interval manner; a CronSchedule that uses a Unix CRON expression; and we have the DateListSchedule that simply let you use any arbituray dates to run.
For this initial release, we only provide a in-memory data store implementation for persisting job and scheduling data. Our goal is to support other type of data store persistance such as using a database in the future. But even with this release, we've designed our API to support multiple scheduler nodes that run under a single logic scheduler. You can even do this with our in-memory data store!
The TimeMachien Scheduler is designed to run with high volumes of jobs, and to give you flexible
control on time scheduling, threads executions and data storage. You can learn more on our project site https://bitbucket.org/timemachine/scheduler/wiki
Enjoy,
Zemian Deng
My personal journal on software development and practical programming.
Tuesday, May 29, 2012
Sunday, April 29, 2012
TimeMachine Scheduler Demo
I just put out a scheduler demo live on https://bitbucket.org/timemachine/scheduler/wiki/SchedulerWebDemo
You can poke around the scheduler using Groovy scripting on this quick demo. The bad thing is that everyone in public has access and can add/delete and modify the scheduler! But it's a good way for you to explore around. Check it out and let me know what you think!
You can poke around the scheduler using Groovy scripting on this quick demo. The bad thing is that everyone in public has access and can add/delete and modify the scheduler! But it's a good way for you to explore around. Check it out and let me know what you think!
Thursday, April 26, 2012
Tryout TimeMachine Scheduler
There are few updates with TimeMachine Scheduler project:
- The project has a new home: https://bitbucket.org/timemachine/scheduler/wiki/Home
- I've been updating with SNAPSHOT downloads frequently lately, and the zip file binary distribution is fairly stable now. We are close to making the first official release.
- I've been working hard to update the ReferenceManual under wiki so users can get started and use it effectively.
Give the project a try and let me know what you think!
Monday, March 12, 2012
How to get JAXB (xjc) to work on Maven
I got it working by using the following
<build>
<plugins>
<!-- Generate JAXB Java source files from an XSD file -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>my.jaxb.data</packageName>
<outputDirectory>${project.build.directory}/generated-source/jaxb</outputDirectory>
<schemaDirectory>${basedir}/src/main/resources</schemaDirectory>
<schemaFiles>mydata.xsd</schemaFiles>
</configuration>
</plugin>
<!-- Build helper plugin adds the sources generated by the JAXB to the compile path -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>process-sources</phase>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/jaxb</source>
</sources>
</configuration>
<goals>
<goal>add-source</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<build>
<plugins>
<!-- Generate JAXB Java source files from an XSD file -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>my.jaxb.data</packageName>
<outputDirectory>${project.build.directory}/generated-source/jaxb</outputDirectory>
<schemaDirectory>${basedir}/src/main/resources</schemaDirectory>
<schemaFiles>mydata.xsd</schemaFiles>
</configuration>
</plugin>
<!-- Build helper plugin adds the sources generated by the JAXB to the compile path -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>process-sources</phase>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/jaxb</source>
</sources>
</configuration>
<goals>
<goal>add-source</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Saturday, March 10, 2012
First snapshot of TimeMachine scheduler is ready
The first snapshot of TimeMachine, a new open source Java Scheduler library, is aviable to download. Check it out at https://bitbucket.org/saltnlight5/timemachine-scheduler/downloads and let me know what you think!
Wednesday, February 29, 2012
TimeMachine Scheduler
Wanna contribute to an opensource project? Check out https://bitbucket.org/saltnlight5/timemachine-scheduler/wiki/Home
Saturday, February 18, 2012
Working on Quartz Queue Job Feature
My job at Bank of New York Mellon has been keeping me fairly busy lately. It's hard to juggle with Church, a family, a full time job, and time for open source projects. But it seems God has blessed me with not many skills nor hobbies other than programming, which I enjoy the most. So I tend to endup writing more code on weekend when the kids are asleep!
I haven't able to put much time into MySchedule other than fixed couple of urgent issues recently. If you are using this app, you should get the latest download now.
However, I did spent time helping out on Quartz development on their next major feature: Queue Jobs. I got most of the initial ground work done. I need to think more about how the concurrent issues with database row locking etc. This feature would allow you to add jobs into a queue structure that the quartz system will process without a trigger (meaning they are process immediatly.) These queue jobs would have a priority value that sorted by the queue as they are processed. We hope this feature would give some users to use the Quartz system to process jobs more effectively.
More of these to come in the future, so stay tuned.
I haven't able to put much time into MySchedule other than fixed couple of urgent issues recently. If you are using this app, you should get the latest download now.
However, I did spent time helping out on Quartz development on their next major feature: Queue Jobs. I got most of the initial ground work done. I need to think more about how the concurrent issues with database row locking etc. This feature would allow you to add jobs into a queue structure that the quartz system will process without a trigger (meaning they are process immediatly.) These queue jobs would have a priority value that sorted by the queue as they are processed. We hope this feature would give some users to use the Quartz system to process jobs more effectively.
More of these to come in the future, so stay tuned.
Subscribe to:
Posts (Atom)