| Technical Notes
|
When the Import menu item is selected, jTask will import the jTaskData.bin file from data\import. It will append everything in the import file to the current set of scheduled tasks. Similarly, when the Export menu item is selected, jTask will export the current set of scheduled tasks to a file named jTaskData.bin to the data\export directory.
NOTE: Exporting will overwrite any existing jTaskData.bin file without prompting.
Expect roughly 2 seconds for every kilobyte imported. The export goes fairly quickly, 20 rows takes approximately 2-3 seconds.
There are no confirmation windows or messages on either function.
There is a known bug with exporting that happens occasionally. Details..
The ThreadViewer is for killing any unwanted threads/classes. For example, you are developing a class that goes through a large database and deletes certain records. After you have jTask invoke it, you realize you forgot something, and want to stop it. Open up Show Task Threads... from the Tools menu. This will list all(*) the threads that have been directly/indirectly invoked by jTask. If the invoked class was a Thread object, or used Thread.sleep() in loop, the entry in the ThreadViewer table will have a name like "ID:1 CLASS:yourclass ARGS: arg1 arg2 .. " and a group of "invoked-task". If, on the other hand, the class being invoked created an instance of another Thread object to do the processing, the entry in the ThreadViewer table will probably have a name like "Thread-28". Obviously this could get confusing if you have a lot of things currently running, and if possible you should explicitly name all threads spawned by your class. Once you find the thread in question, to kill the thread simply right-click the row and choose "kill" in the popup menu.
(*) sometimes your classes will invoke threads which are in their own threadgroup, and so they wont show up in the "Task Threads" ThreadViewer. To view/kill these threads, you will need to choose Show All Threads..., and look for them here.
Note that the ThreadViewer can be unstable at times, and should be used sparingly. If the ThreadViewer crashes, it will usually crash for the lifecycle of the jTask Service, however this should have little effect on anything else.
If System.setOut() is called within a class invoked by jTask, all of jTasks logging features will be disabled (the output will go to the new PrintStream). Future versions will add the ability to optionally ingore System.setOut() calls.
The jTask Console displays the most recent 1000 lines from both the System.out and System.err output streams.
The System.out and System.err windows display the jTaskStdOut.txt and jTaskStdErr.txt files, respectively. The maximum file size that will be displayed is 100K. If it's larger than 100K you will either need to clear the log or use a text editor to view output.
If jTask encounters an error trying to invoke a class, it can either pop up a window to the desktop or send an E-mail message (or both).
All error notification is suppressed when running the task directly, via the menu or right-click option.
Desktop notification is enabled by default, but you will need to set your mail preferences (File/Preferences/Error Notification) to receive E-mail error notification.
This feature is only possible on an application-wide basis, not per task. If you have a large number of tasks that are running fairly often, you may want to only use the E-mail notification, since you could end up with hundreds of desktop windows if you get an error while away from the computer.