I want to run a Java program on a specific date.
I am developing a J2EE application that allows you to schedule Selenium test launch (JUnit) on a specified date..
Are there any solutions to do this? can you point me to technology that can help me to do this?
any help is appreciated:)
thanks for your help
You provided very little information. You can schedule launch in scheduler of your operating system (like cron in Linux), or you can run a task from within your Java process, if the process is constantly running. For this see Quartz Scheduler.
Not knowing enough details, I would recommend using Quartz. You can see an example of using it here.
You could use crond or Windows Task Manager.
If you have a Java process running from now to the time it needs to start, look at Quartz.
If you need to have a Java process started from nothing, you must ask your operating system to invoke it for you. For Linux check the "at" command.
Cron on Unix, and Cron for NT on WindowsNT platforms (XP-Windows 7, Windows Server 4.0+).
Why reinvent the wheel?
If you want to create and package modular java server-side tasks (that you can then schedule in any particular java scheduler of your choice) check out the open source project called soafaces. Let's you create modular java Tasklets and also give them web based GUI customizer (customizer part is optional and based on google gwt).
Scheduling can be implemented in many ways, it is also bit IO intensive, so if needed u might want to use non-java solutions
However you want to have java solutions may be below links should help you
Spring Way : https://spring.io/guides/gs/scheduling-tasks/ and https://dzone.com/articles/schedulers-in-java-and-spring
Non Spring solution: https://github.com/knowm/Sundial
Related
I have few control-M job running on server. I can perform basic operations like to start/stop or pause any JOB from control M Interface.But there is not a development environment available for Control-M.
I have another java application from where I want to start/stop/pause and other basic stuffs of Control-M.
Till now I am totally blank.I don't know which JAVA API, I should use. Do i need to have development environement of Control-M also.
Could some one please help me on this regard?
You should use Web service functionality of Control-M.The details Example is given with API. Run the bat file for configuration.Provide your parameters.Run ClientGui.java.
if you have provided your correct parameters than you should be able to connect with control-M.Please make a comment if you are facing any issue..
Look at Control-M for Web Services, Java and Messaging. They also just came out with a Automation API but you have to have Version 9 Fix Pack 2
I am new to J2EE and i am working on couple of tasks. one of them is :
I have a web application that works like a reporting toolbox hosted by Apache tomcat 7, I need a heavy weight job to be scheduled to run every hour or other intervals, I googled and find Apache Sling that is kind of separate application server for content-centeric applications. I want to know if there is other solution could be done Apache tomcat or not ?
also its important that solution would be standard and reliable.
There's the ScheduledExecutorService which is part of the standard java api. See the new*Schedule* factory methods in Executors.
For a more heavyweight / configurable option there's Quartz. One of Quartz' nice features is it's support for cron expressions
You can also use Spring Batch. Here's a link that can help you understand this framework.
http://projects.spring.io/spring-batch/faq.html
In case none of the packages work for you one option would be to implement a ServletContextListener. It is an object that is launched when your site goes online. The only problem is that you have to manage all the scheduling.
I have a Java desktop application that I'd like to completely exit, and schedule it to launch at a later date.
Is there any way of using Quartz Scheduler for this?
As far as I understand, Quartz requires a Java runtime to be running for it to activate.
I'd like the following functionality, and would not mind using another Java library to achieve this:
Get/Set schedules for execution of a Java application.
Be able to launch the application without having a Java runtime.
Maintain a cross-platform codebase.
Yes you can, you need to wedge it outside the code.
Is it possible to write a cron job using java quartz and triggering through windows batch file because after so much searching there is no standalone particularly for java-quartz
"So much searching"? This was the first link returned by Google.
If I understand your question right, you want to execute java process as a windows service. If that is correct, wrap your java service (could be quartz as well) using tanuki wrapper and can install it as windows service. Or as #duffymo suggesting you can also use cron trigger too.
I just want that my program or method should run at specific date and time.
i have heard about Timer and TimerTask in java API. But don't know exactly how to use it.
If you want to run a java program at a specific time you probably want to look at the OS tools (like cron or at).
If you want to run a method inside of an already running java application then the ScheduleExecutorService, while it may be overkill, is pretty easy to use.
If this is for your own benefit and not for a project I would suggest you look into
http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html which is a replacement for java.util.Timer. If however you want a robust scheduler, I concur with the previous posters with regards to Quartz.
Maybe you should use a third-party library with a higher level API like Quartz and use the SimpleTrigger.
You can run your task inside a Glassfish Java EE server. It supports a Timer Service that fires background tasks at specified intervals. When you're running a cluster of Glassfish servers on different machines, they'll collaborate to fire the task exactly once.
A simpler approach is to rely on cron for Unix systems. At specified times you can run your java task via the java command.
I've also used pycron on Windows, which is a service that emulates cron.