Yazar |
|
commandante
Kayıt: 20.02.2009 |
|
Kullanıcıdan job'ın çalışma şeklini (saatlik, günlük, haftalık, aylık) aldıktan sonra kaç saatte bir çalışacak, kaç günde bir saat kaçta çalışacak gibi verileri alıp cron expressionumu oluşturuyorum ve db'ye kaydediyorum.
kullanıcı düzenleme yapmayı istediği zaman db'den cron expressionu çekip kullanıcıdan ilk aldığım hale getirmem gerekiyor (0 0 5 12 1/2 ? * --> her 2 ayda bir, ayın 12'sinde saat 5'te gibi ).
Oluşacak her durum için substring yardımıyla verileri alabliyorum ama 120 satırlık metod ve karmaşık bir kod çıktı ortaya.
Bunun için cron expression'ın bir metodu var mı yada daha makul bir çözümü?
|
|
Yazar |
|
acebisli
iskenderun
Kayıt: 29.09.2009 |
|
Zannedersem expressionlar için bir tane parser veya anlamlı bişiye çeviren bişi yok.Ben de s-expression veri tipi ile çalışmıştım.Bunu kendim parse etmiştim.Yardımı olursa parser metodunu gönderebilriim
Gereksiz yazarlari uçurunuz.Hatta ellerini kesiniz ki bir daha yazamasinlar o ahmak dü?üncelerini..
|
|
Yazar |
|
whispered
Samsun
Kayıt: 24.10.2011 |
|
Haydar CronExpression içinde bunları parça parça veren fonksiyonlar var ama protected. Sen bu sınıftan türeyen bir sınıf oluşturup methodları ezebilir veya o fonksiyonlara aşşağıda goreceğin şekilde de erişebilirsin. Sana lazım olacak olan tek şey getExpressionSetSummary fonksiyonu. Aşağıda bir örneği var parça parça ne istersen çekiyorsun.
/* Author Ahmet DAL */
import java.text.ParseException;
import org.quartz.CronExpression;
@SuppressWarnings("serial")
public class getPartOfQuartz extends CronExpression {
private static final int SECOND = 0;
private static final int MINUTE = 1;
private static final int HOUR = 2;
private static final int DAY_OF_MONTH = 3;
private static final int MONTH = 4;
private static final int DAY_OF_WEEK = 5;
private static final int YEAR = 6;
public getPartOfQuartz(String cronExpression) throws ParseException {
super(cronExpression);
}
public static void main(String[] args) {
try {
getPartOfQuartz cronExpression = new getPartOfQuartz("0 30 10-13 ? * WED,FRI");
System.out.println(cronExpression.getPart(SECOND));
System.out.println(cronExpression.getPart(MINUTE));
System.out.println(cronExpression.getPart(HOUR));
System.out.println(cronExpression.getPart(DAY_OF_MONTH));
System.out.println(cronExpression.getPart(MONTH));
System.out.println(cronExpression.getPart(DAY_OF_WEEK));
System.out.println(cronExpression.getPart(YEAR));
} catch (ParseException e) {
e.printStackTrace();
}
}
public String getPart(int type) {
return getExpressionSetSummary(getSet(type));
}
}
Istanbul Universitesi
Bilgisayar Mühendisligi
|
|
Yazar |
|
commandante
Kayıt: 20.02.2009 |
|
yardımlarınız için teşekkürler, ahmet'in (DAL) yaptığı tam olarak aradığım şeydi.
iyi çalışmalar..
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| |