\��쏢�¼\��\���\½���¼\¹������돪������������̏����я�ď��

\��쏢�¼\��\���\¹\���\���\������¼\�������\��쏢�¼\��\���\½���¼\¹�����������������������������»�����я��̏�¡�\��쏢�¼\��\���\¹\���\���\������¼\���������¼������½���¹�����������ď�����������\��쏢�¼\��\���\½���¼\¹����²��������ď��¹������³������������������­������������¹�����𡯏����������쏢�������������¹��¡�\��쏢�¼\��\���\¹\���\���\������¼\���������¼��������폢�¹������¾���������������������\��쏢�¼\��\���\½���¼\¹������»��������������ď������������������«��¡���������������������³��������Џ��·���������������ޏ��Ð�������������«������������������¹�����𡯏��������������­�����ď�����������»�ߏ��������������¹��¡��½�����������������돪؏������������\��쏢�¼\��\���\½���¼\¹������돪������������̏����я�ď�ԏ�¡ߏ�����������������³«������������½���(\¹\���\���\������¼\���)������¹�����𡯏��������������­���������¹��¡�
������»��Џ�¡�2007.08.25
\���\���\���\�����¡�Quartz\¹\��\���\������¼\���(org.quartz..)

�������­��¡�
jboss4.0.5(jems1.2.0.beta3)
jdk1.5.0_07
eclipse3.2.1
postgreSQL8.1
jbossSeam1.1.0

������������
����\Ð\���\���½�������������\¹\��\���\������¼\������������·������quartz�����ҏ�ġ����¹���«���������������������¹���̏�¡񏪢���������½��Џ�����������MDB������\¹\��\���\������¼\���\���\�돢������������������������¡�\¹\��\���\������¼\���\���\���\¹������entity(�ޏ�����³������)������������µ������µ������������������������\¹\��\���\������¼\���������µ�����������������񏩡�돢����¹������¼«��ď��������\¹\��\���\������¼\���\���\�돢�¹�����������򏪳������ҏ��«���¾���·�����������Ώ��������¹��¡����������������Ï��³������������Scheduler,Job,JobDetail,Trigger,Listener\���\���\¹�����������������ҏ�����²��ҏ��¹�����������ď����������� quartz������\���\������¼\���\���\��\���������¾������·�����������я����������Ώ��������¹��¡�
http://www.opensymphony.com/quartz/wikidocs/Tutorial.html

��ޏ��\Scheduler��¡�\¹\��\���\������¼\��������ҏ����폢�������Ï�����³������¹������\���\���\¹������µ��������
SchedulerFactory schedulerFactory = new org.quartz.impl.StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.start();

��²���\\¹\��\���\������¼\���\���\���\���(Job)����\Ð\���\��������ҏ��Ð������
����Scheduler������������������������¼���¹��ԏ��µ������������\���\���\��ӏ�����\Ð\���\���½�������������Job\���\���\��ď��¼\���\�����¼\¹������¼��������؏��·���������¹��¡�(����只����������\Ð\���\���interface������perform\���\½\���\���������¼��������؏��·����������돢돫��·����������������������������Job\���\���\��ď��¼\���\�����¼\¹������������¼��������؏�����������¹¹���¹���������«Adopter\���\��ď��¼\��я���������������������只����������wrap���¹���������«�������������·���������������������������¹)
���¡򏪡���\JobDetail(JobDataMap)��¡�Scheduler������¼�����돪��������Ð�����ď��¹����������������Job���½��������������������������������������JobDetail\���\���\¹(�����������ԏ�����JobDataMap�����ҏ�����»����·����������������������������¼���¼���������JobDataMap����½��������)���������¹��¡�JobDetail���������������¹������job����������µ��������ҏ�����»����·���������¹��¡����������������Ώ�����JobDetail����������������»��Џ�����Job������\���\���\¹\���\���\¹�����ҡ돫⏢�­���������·����������������������������Job\���\���\¹\���\���\¹�������������������������������\���\���\���\µ\���\���\���������Scheduler\���\���\¹������������������������\³\���\���\������¼\������µ����������������������������»�ߏ��������������¹��¡�Job������¼���¹��ԏ��µ���������������¾����돢����������������µ�������������������������·�����������Ï��«��¡򏢱���������¹��𡯏�����������¾��Ï����я�����Job������»����������������������������������������������叢�������������������·������JobDataMap������»������������������������Ï��³���������������������������������¹��¡����������������Ώ�����\���\���\��ӏ�����\Ð\���\���½�������������������������execute�����������ԏ��«������JobDataMap������»²¾������¹������������������JobExecutionContext���«������JobDataMap������¼������������·���������¹��¡�
������¡�Job\���\���\¹
�񡯡돫⏢ď�ԏ��µ���·������\³\���\¹\���\���\���\��ď��̏���̏���ߏ�¡�
public class MartBuyMatrixJob implements Job {
public MartBuyMatrixJob() {
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("debug070825��¡�" + context.getJobDetail().getName()
+ "\n");
System.out.println("debug070825��¡�" + context.getJobDetail().getGroup()
+ "\n");
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
System.out.println("debug070825" + jobDataMap.getString("debug1")
+ "\n");
}
}
������¡�JobDetail����������������
JobDetail jobDetail = new JobDetail( //
view.getId1() // job���¾
, null // job\��\������¼\��
, Class.forName(view.getPath1() + "/"
+ view.getProcess1()) // job\���\���\¹\���\���\¹
);
jobDetail.getJobDataMap().put("debug1", "evangelistic");
����Durability,Volatility,RequestsRecovery,JobListeners�����������������������������������������叢����
���¡򏪤���\Trigger��¡������������á돫�������Scheduler������¼�����돪��������Ð�����ď��¹����������������Trigger\���\���\¹���������¹���̏��³�����������������������������ԏ�����JobDataMap�����ҏ�����»����·����������������������������¼���¼���������JobDataMap������¾��Ï����я����ҏ�����»����·���������¹��¡�\¹\��\���\������¼\���������\���\���\�̏��¼����������µ��������������������Ï��³������������������������돫������ӏ�돪�½���������»�ߏ������������������������̏�����»���(»��С���ӏ�����\¹\��\���\������¼\���������������������trigger)������������µ�������돢¡�����������������cron���������·�����������Ï��«��¡�trigger������\��\���\»\���\¹�����ҏ�����²��ҏ��¹������������������CronTrigger\���\���\¹(\¹\��\���\������¼\���µ��������)������SimpleTrigger\���\���\¹(»��С����µ��������)�����ҏ��«�������������̢�������»���«���������·���������������»�����я���
������¡�Trigger����������������
Trigger trigger = TriggerUtils.makeDailyTrigger( //
1 // »���
, 00 // �����
);
trigger.setStartTime(new Date());
trigger.setName(view.getId1());
�������������������Ώ�����������¾���JobDetail������������������group������null���������·������Scheduler���������Ð�����ď��¹������������job������trigger������DEFAULT_GROUP������½�������돢�¹�����������������������������¹��¡��³������³µ����돢���������������叢������¡�
���¡򏪪���\���Ð�����ď�¡���돪�������������Scheduler������JobDetail������Trigger�����ҏ��Ð�����ď��·���������¹��¡�
scheduler.scheduleJob(jobDetail, trigger);

��³���\Listener����������¡�
������ TriggerListener��¡�trigger\���\���\���\µ\���\���\���¾���������³���¼���\���\���\���\������������Ð���¹������\���\¹\���
����������¡������я��¾�����폢����(A\Ð\���\���¼���¹��ԏ�����������B\Ð\���\���������������ޏ�����µ���»������)��������������¡�¼���¹��ԏ��µ������������������¾���¹���������Vetoed��������������\���\½\���\���������������½���������¡�
������ JobListener��¡�job\���\���\���\µ\���\���\���¾���������³���¼���\���\���\���\������������Ð���¹������\���\¹\���
����������¡�����Ï�����������²��ԏ����¼��������я������Ð������½���������(���³������¾���¹���������addGlobal������\��\������¼\Ð\���(�����job���������Ð���·������)���������·������\���\¹\������Ð������)
����������¡�job(\Ð\���\���½���������)������½���½��̏����폢������¡�A������job����½��쏢���������ď�����B������job������³«»�����������������¡�(�����ď��������·quartz������version1.6.0������������JobChainingJobListener���̏��������������������³������������¼������½���������­���½�����Ï��������¹����)
�����¡�quartz-all-1.6.0.jar������³���������·�����������Ώ��������¹��¡�
// ������³������¹������\¹\��\���\������¼\���������ď��ID������Chain�����ҏ�����������
scheduler.addJob(jobDetail2, true);
scheduler.addJob(jobDetail3, true);
scheduler.addJob(jobDetail4, true);
scheduler.addJob(jobDetail5, true);
JobChainingJobListener chain1 = new JobChainingJobListener(
view.getId1());
chain1.addJobChainLink(jobDetail1.getKey(), jobDetail2
.getKey());
chain1.addJobChainLink(jobDetail2.getKey(), jobDetail3
.getKey());
chain1.addJobChainLink(jobDetail3.getKey(), jobDetail4
.getKey());
chain1.addJobChainLink(jobDetail4.getKey(), jobDetail5
.getKey());
scheduler.addJobListener(chain1);
scheduler.scheduleJob(jobDetail, trigger);
��1.6.0���������·������¾���¹���������quartz-ra.rar�����������������Ï��¹���������Ð�����������������������·�����������Ï��«���폪����³«���¹������������µ���������µ�����������������������������������������½������·��������돪����·���������·������������������\��\������¼���������������������«���������·���������������»�����я���
��1.6.0���������·������¾���¹���������commons-collections-3.1.jar����core���������������������������������������������¹��¡�
������ SchedulerListener��¡�������������������job������trigger�������돪����������¹���������������ޏ�����������������������Scheduler¼«��ď���������������������������������¹������\¹\��\���\������¼\������������Ð���¹������\���\���\���\���������\���\¹\�����¡�����������²��ď����ҏ������������������������������������«¼«����̏��������������������«��������������������������������������������������¡�pause,resume������������¼�����돪�����\���\½\���\��������ҏ����Ώ��������Ð�����������򏪿½�����叢�������������­���������¹���̏�¡�\µ\���\��\���������\���\������¼\���\���\��\��������������������������»�����я��������·�����ď�¡�
�������������쏢¡�\���\¹\����������돪�²¼�������������������·������\¹\��\���\������¼\������������Ð�����ď��·���������¹��¡�
scheduler.addTriggerListener(\���\¹\���¼���������)
scheduler.addJobListener(\���\¹\���¼���������)
scheduler.addGlobalTriggerListener(\���\¹\���¼���������)
scheduler.addGlobalJobListener(\���\¹\���¼���������)
scheduler.addSchedulerListener(\���\¹\���¼���������)

�򡭏��\���½�������¾
������ TriggerUtils\���\���\¹��¡�\���\���\�̏��¼�����ҡ��������ޏ�����������������¹�������돪㏢����utility\���\���\¹
������ StdSchedulerFactory��¡�SchedulerFactory¼��������؏�¡�
������ JobStore��¡����������������叢����
������ ThreadPool��¡���������������\Ð\���\���·���½������������ҏ���������½����������·����������������������¾������·�����������Ώ����ԏ��Ð���·���������·���������������������·�����ď�¡�quartz����������������¼��������؏�����Worker Thread����eclipse������\���\Ð\���\�돢����������woker\¹\���\���\�������10�����������̏����㏢�������­���������������������·�����ď�¡�

��µ���\����³��
������³�돢����Job\���\���\¹������JobExecutionException������throw���·���������¹��¡�\��\��\���\�ޏ��¼\·\���\��я���³�돢���ҏ���̏����⏢����½����������¹���������«��¡����Ï�����½������������������������ÐJobListener������\��\������¼\Ð\������������Ð�����ď��·��¡�JobExecutionException�����ҏ��«������½�������������¼��������؏��¹���������«���폢����������»�ߏ��������������������¹��¡�������������\���\������¼\���\���\��\���������������µ­���̏��µ����������������\���\¹\������·�����������Ώ��������¹��¡�

����돪���������������¡�\·\¹\���\����ޏ�ď�����\���\���\Ð���������Ð���¹��������돩�½���������(rerun)�����¡������­���������Ѣ�����������돪�»³��������¡񡭡돪�»��������������������²��я�����quartz������������������������¼���������¼���������������¼������½���·���������¹��¡�

trackback URL

trackbacks

\³\���\���\������¹������

���¾�����
 
  ³»
 
 
Profile

matusoft

<% for ( var i = 0; i < 7; i++ ) { %> <% } %>
<%= wdays[i] %>
<% for ( var i = 0; i < cal.length; i++ ) { %> <% for ( var j = 0; j < cal[i].length; j++) { %> <% } %> <% } %>
0) { %> id="calendar-102991-day-<%= cal[i][j]%>"<% } %>><%= cal[i][j] %>
��돪����·µ­»���
Archives
Recent Comments
<%==comments[n].author%>
<% } %>
QR\³���¼\���
QR\³¼\
\��\���\»\¹\«\���\���\��ď��¼

'); label.html('\ \���\���\���\���\��\���\���\�돢����������¹­¹��Ï�����\��Џ��¼\½\���\���\���\��돢����������²�������̏��������������ď�����\���\���\­���¼(cookie)������»��������Џ��·���������������������¹��¡�
\ ���³������\Ð\������¼�����ҏ��������������������«�ޏ�䏪���������·��Џ��³���¹���������³������������\���\���\­���¼������»��������Џ�����¾µ����������������ď����������������ď������������������µ���»�����������������ď��������­���������¹��¡�
\ �����������ď�¡�����µ��ҏ�����������������¼���\��Џ��¼\���\������¼���������������������쏢�ޏ�����½���������������¼������³���­��������������������¡�\���\���\­���¼������»��������Џ����ҡ�����������¹���������³���������������������­���������¹��¡�
\ ¾��䏢돪㏢����\���\���\���\���\�񏪿��̏�����µ�̏����я����ҏ��³���������������������µ��������¡�\ '); banner.append(label); var closeButton = $('