I have not tested it but try using exp.start(date).end(<date after 1 min).
Hope this will work. If not then let me know. On Sun, Dec 29, 2013 at 1:17 PM, Leonardo K. Shikida <[email protected]>wrote: > Yes, I can. > > I just would like to know how I could do the same using a calendar > expression > > [] > > Leo > > > On Sun, Dec 29, 2013 at 10:08 AM, Radhakrishna Kalyan > <[email protected]>wrote: > > > Sorry, I misunderstood. > > > > You can use timerService.createSingleActionTimer(...). This will execute > > only once and then you don't create more timers in your @Timeout method. > > > > > > On Sun, Dec 29, 2013 at 12:40 PM, Leonardo K. Shikida <[email protected] > > >wrote: > > > > > Hi Kalyan > > > > > > I don' t want to run it every minute (for this, I could use * as > minute) > > > > > > I want to run it in a specific date and time, and only once. > > > > > > TIA > > > > > > Leo > > > > > > [] > > > > > > Leo > > > > > > > > > On Sat, Dec 28, 2013 at 11:28 PM, Nrkkalyan <[email protected]> > wrote: > > > > > > > If you mean you would like your timer service to run every min 24/7 > > then > > > > you > > > > You need only the following. exp.minutes("*/1").hour("*") > > > > > > > > Hope I am clearly understanding your need. > > > > > > > > Regards > > > > /Kalyan > > > > 0733312584 > > > > > > > > PS: May have typos due to using mobile > > > > > > > > On 28 dec 2013, at 19:53, "Leonardo K. Shikida" <[email protected]> > > > wrote: > > > > > > > > > Hi > > > > > > > > > > I'd like to start a calendar scheduled job for 1 minute from now. > > > > > > > > > > I was trying to assemble a cron expression like this, but instead, > > it's > > > > > generating > > > > > a lot of jobs (really) > > > > > > > > > > looks like something really stupid > > > > > > > > > > The code is as simple as this > > > > > > > > > > import java.util.Calendar; > > > > > import java.util.GregorianCalendar; > > > > > > > > > > import javax.annotation.PostConstruct; > > > > > import javax.annotation.Resource; > > > > > import javax.ejb.ScheduleExpression; > > > > > import javax.ejb.Singleton; > > > > > import javax.ejb.Startup; > > > > > import javax.ejb.Timeout; > > > > > import javax.ejb.Timer; > > > > > import javax.ejb.TimerService; > > > > > > > > > > @Singleton > > > > > @Startup > > > > > public class TimerEJB { > > > > > > > > > > @Resource > > > > > private TimerService timerService; > > > > > > > > > > @Timeout > > > > > public void executeTimer(Timer timer) { > > > > > System.out.println(timer); > > > > > } > > > > > > > > > > private String toString(ScheduleExpression schedule) { > > > > > return "MyScheduleExpression [getDayOfMonth()=" + > > > > > schedule.getDayOfMonth() > > > > > + ", getDayOfWeek()=" + schedule.getDayOfWeek() > > > > > + ", getEnd()=" + schedule.getEnd() > > > > > + ", getHour()=" + schedule.getHour() > > > > > + ", getMinute()=" + schedule.getMinute() > > > > > + ", getMonth()=" + schedule.getMonth() > > > > > + ", getSecond()=" + schedule.getSecond() > > > > > + ", getStart()=" + schedule.getStart() > > > > > + ", getYear()=" + schedule.getYear() > > > > > + ", getTimezone()=" + schedule.getTimezone() + "]"; > > > > > } > > > > > > > > > > @PostConstruct > > > > > public void create() { > > > > > > > > > > Calendar future = new GregorianCalendar(); > > > > > future.setTimeInMillis(System.currentTimeMillis() + 60000); > > > > > > > > > > int dayOfWeek = future.get(Calendar.DAY_OF_WEEK); > > > > > String dayOfWeekName = null; > > > > > > > > > > switch (dayOfWeek) { > > > > > case Calendar.MONDAY: > > > > > dayOfWeekName = "Mon"; > > > > > break; > > > > > case Calendar.TUESDAY: > > > > > dayOfWeekName = "Tue"; > > > > > break; > > > > > case Calendar.WEDNESDAY: > > > > > dayOfWeekName = "Wed"; > > > > > break; > > > > > case Calendar.THURSDAY: > > > > > dayOfWeekName = "Thu"; > > > > > break; > > > > > case Calendar.FRIDAY: > > > > > dayOfWeekName = "Fri"; > > > > > break; > > > > > case Calendar.SATURDAY: > > > > > dayOfWeekName = "Sat"; > > > > > break; > > > > > case Calendar.SUNDAY: > > > > > dayOfWeekName = "Sun"; > > > > > break; > > > > > } > > > > > > > > > > String cronExp = String.format("%1$s %2$s %3$s %4$s %5$s > %6$s > > > > %7$s", > > > > > future.get(Calendar.SECOND), > > > > > future.get(Calendar.MINUTE), > > > > > future.get(Calendar.HOUR_OF_DAY), > > > > > dayOfWeekName, > > > > > future.get(Calendar.DAY_OF_MONTH), > > > > > future.get(Calendar.MONTH) + 1, > > > > > future.get(Calendar.YEAR)); > > > > > > > > > > String[] cron = cronExp.split(" "); > > > > > String[] ss = new String[7]; > > > > > for (int i = 0; i < cron.length; i++) { > > > > > ss[i] = cron[i]; > > > > > } > > > > > > > > > > ScheduleExpression exp = new ScheduleExpression(); > > > > > exp.second(0); > > > > > exp.minute(ss[1]); > > > > > exp.hour(ss[2]); > > > > > exp.dayOfWeek(ss[3]); > > > > > exp.dayOfMonth(ss[4]); > > > > > exp.month(ss[5]); > > > > > exp.year(ss[6]); > > > > > > > > > > System.out.println(toString(exp)); > > > > > > > > > > Timer t = this.timerService.createCalendarTimer(exp); > > > > > > > > > > System.out.println("Created "+t); > > > > > } > > > > > > > > > > } > > > > > > > > > > output for this looks like this > > > > > > > > > > MyScheduleExpression [getDayOfMonth()=28, getDayOfWeek()=Sat, > > > > > getEnd()=null, getHour()=16, getMinute()=53, getMonth()=12, > > > > getSecond()=0, > > > > > getStart()=null, getYear()=2013, getTimezone()=null] > > > > > > > > > > Created org.apache.openejb.core.timer.TimerImpl@298a0c11 > > > > > > > > > > an after some seconds > > > > > > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a > > > > > org.apache.openejb.core.timer.TimerImpl@5f1e961a... > > > > > > > > > > any help is welcome > > > > > > > > > > TIA > > > > > > > > > > Leo > > > > > > > > > > > > > > > -- > > Thanks and Regards > > N Radhakrishna Kalyan > > > > P: +46 733 312 584 > > http://about.me/nrkkalyan > > <http://about.me/nrkkalyan> > > > -- Thanks and Regards N Radhakrishna Kalyan P: +46 733 312 584 http://about.me/nrkkalyan <http://about.me/nrkkalyan>
