ÀÛ¾÷ ½ºÄÉÁÙ¸µ

Áö±Ý±îÁöÀÇ ¿¹Á¦¿¡¼­´Â ´Ü¼ø ÀÛ¾÷ ÀÛ¼º, ½ºÄÉÁÙ ¹× ÁøÇà º¸°í¸¦ ¼³¸íÇß½À´Ï´Ù. ÀÛ¾÷ ½ºÄÉÁÙ¸µ ¸ÞÄ¿´ÏÁòÀº ½ÇÁ¦·Î Áö±Ý±îÁö Ç¥½ÃÇÑ °Íº¸´Ù ´õ °­·ÂÇÕ´Ï´Ù. ¿ì¼±¼øÀ§, Áö¿¬ ¹× »ç¿ëÀÚ Á¤ÀÇ ½ºÄÉÁÙ¸µ Á¶°ÇÀ» »ç¿ëÇÏ¿© ÀÛ¾÷ÀÌ ½ºÄÉÁٵǴ ¹æ½ÄÀ» ´õ¿í ´õ Á¤¹ÐÇÏ°Ô Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÛ¾÷ ¿ì¼±¼øÀ§

ÀÛ¾÷ ¿ì¼±¼øÀ§´Â ½Ã½ºÅÛÀÇ ´Ù¸¥ ÀÛ¾÷°ú °ü·ÃÇÏ¿© ÀÛ¾÷ÀÇ Á߿伺À» ¼³Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÛ¾÷ÀÇ ¿ì¼±¼øÀ§¸¦ ¼³Á¤Çϸé ÀÌ¹Ì ½ÇÇà ÁßÀÎ ÀÛ¾÷¿¡´Â ¿µÇâÀ» ÁÖÁö ¾ÊÁö¸¸ ´Ù¸¥ ÀÛ¾÷°ú °ü·ÃÇÏ¿© ´ë±â ÁßÀÎ ÀÛ¾÷ÀÌ ½ºÄÉÁٵǴ ¹æ¹ý¿¡´Â ¿µÇâÀ» ÁÝ´Ï´Ù. ÀÛ¾÷ÀÇ ¿ì¼±¼øÀ§´Â ´ÙÀ½°ú °°ÀÌ »çÀüÁ¤ÀÇµÈ ¿©·¯ ¿ì¼±¼øÀ§ »ó¼ö Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.

ÀÛ¾÷ÀÇ ±âº» ¿ì¼±¼øÀ§´Â LONGÀÔ´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº ÀÌÀü¿¡ »ç¿ëÇÑ ÀÏ¹Ý ÀÛ¾÷À» ÀÛ¼ºÇÏÁö¸¸ ¿ì¼±¼øÀ§¸¦ DECORATE·Î ¼³Á¤ÇÏ¿© ÀÌ ÀÛ¾÷ÀÇ ¿ì¼±¼øÀ§°¡ °¡Àå ³·Àº ·¹º§ÀÓÀ» Ç¥½ÃÇÕ´Ï´Ù.
   TrivialJob job = new TrivialJob();
   job.setPriority(Job.DECORATE);
   job.schedule();

Áö¿¬ÀÌ ÀÖ´Â ½ºÄÉÁÙ

ÀÛ¾÷ ½ºÄÉÁÙ ¹æ¹ýÀ» Á¦¾îÇÏ´Â ¶Ç ´Ù¸¥ ±â¼úÀº ½ºÄÉÁÙ¸µ Áö¿¬À» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ½ºÄÉÁÙ¸µ Áö¿¬Àº ÀÛ¾÷À» ½ºÄÉÁÙÇÒ ¶§ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÛ¾÷ÀÌ ½ºÄÉÁٵDZâ Àü¿¡ ÁöÁ¤µÈ ½Ã°£(¹Ð¸®ÃÊ) µ¿¾È Áö¿¬µË´Ï´Ù.

   TrivialJob job = new TrivialJob();
   job.schedule(1000);  // wait one second before scheduling

ÀÛ¾÷ À罺ÄÉÁÙ

ÀÌ¹Ì ´ë±â ÁßÀ̰ųª ÀϽà Á¤Áö ÁßÀÎ ÀÛ¾÷À» ½ºÄÉÁÙÇÏ´Â ÇÏ´Â °ÍÀº ¾Æ¹« È¿°ú°¡ ¾ø½À´Ï´Ù. ±×·¯³ª ÀÌ¹Ì ½ÇÇà ÁßÀÎ ÀÛ¾÷À» ½ºÄÉÁÙÇϸé ÀÛ¾÷ÀÌ ¿Ï·áµÈ ÈÄ¿¡ À罺ÄÉÁٵ˴ϴÙ. À̰ÍÀº ¹è°æ Æú¸µ ·çÇÁ¿Í °°Àº ¹Ýº¹ÀûÀÎ ÀÛ¾÷¿¡ Æí¸®ÇÑ ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù. ÀÛ¾÷ÀÌ ½ÇÇà ÁßÀÎ µ¿¾È ¿©·¯ ¹ø À罺ÄÉÁÙµÇ¸é °¡Àå ÃÖ±Ù¿¡ Á¦°øµÈ Áö¿¬À¸·Î ÇÑ ¹ø¸¸ À罺ÄÉÁٵ˴ϴÙ. ´ÙÀ½ ½º´ÏÆêÀº ÀÛ¾÷ÀÌ ÇöÀç ¹Ýº¹À» ¿Ï·áÇÑ ÀÌÈÄ 10ÃÊ µ¿¾È ½ÇÇàÇϵµ·Ï ÀÚüÀûÀ¸·Î À罺ÄÉÁÙÇÏ´Â ÀÛ¾÷À» Á¤ÀÇÇÕ´Ï´Ù.

   class RepetitiveTrivialJob extends Job {
      public RepetitiveTrivialJob() {
         super("Repetitive Trivial Job");
      }
      public IStatus run(IProgressMonitor monitor) {
         System.out.println("Running the job.");
         // reschedule after 10 seconds
         schedule(10000);
         return Status.OK_STATUS;
      }
   }

½ºÄÉÁÙ¸µ Á¶°Ç »ç¿ëÀÚ Á¤ÀÇ

ÀÛ¾÷ Ŭ·¡½ºÀÇ Ãß°¡ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϸé ÀÛ¾÷ÀÌ ½ºÄÉÁٵǰųª ½ÇÇàµÇ±â Àü¿¡ »çÀü Á¶°ÇÀÌ ÀÖ´ÂÁö °Ë»çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ³»¿ëÀº ´ÙÀ½ ¿¹Á¦¿¡¼­ °¡Àå Àß ¼³¸íµË´Ï´Ù.

class JobWithPreconditions extends Job {
	...
	public boolean shouldSchedule() {
		return super.shouldSchedule() && checkJobPreconditions();
	}
	public boolean shouldRun() {
		return super.shouldRun() && checkJobPreconditions();
	}
	...
}
shouldSchedule ¸Þ¼Òµå´Â ÀÛ¾÷ °ü¸®ÀÚ°¡ ÀÛ¾÷À» ´ë±â¿­¿¡ ¹èÄ¡Çϱâ Á÷Àü¿¡ È£ÃâµË´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¸é ½ºÄÉÁÙ¸µ¿¡ ´ëÇÑ ±âº» »çÀü Á¶°ÇÀÌ ÃæÁ·µÇÁö ¾ÊÀ» °æ¿ì ÀÛ¾÷ÀÌ ÀÛ¾÷ ÀÚü¸¦ Ãë¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÛ¾÷Àº ½ºÄÉÁÙÇϱⰡ ÀûÀýÇÏÁö ¾ÊÀ½À» Ç¥½ÃÇÏ´Â false¸¦ ¸®ÅÏÇÏ°Ô µË´Ï´Ù. ¸¶Âù°¡Áö·Î shouldRun ¸Þ¼Òµå´Â ÀÛ¾÷ °ü¸®ÀÚ°¡ ÀÛ¾÷À» ½ÇÇàÇϱâ Á÷Àü¿¡ È£ÃâµË´Ï´Ù. ÀÛ¾÷ÀÌ ½ÇÇàµÇ±â Àü¿¡ ÃæÁ·µÇ¾î¾ß ÇÏ´Â ¸ðµç Ãß°¡ Á¶°ÇÀ» ÀÌ ½ÃÁ¡¿¡¼­ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

¹ýÀû ÁÖÀÇ»çÇ×