我是EJB 3的新手.我使用以下代码启动无限的EJB 3计时器,然后在JBOSS 4.2.3上部署它
@Stateless
public class SimpleBean implements SimpleBeanRemote,TimerService {
@Resource
TimerService timerService;
private Timer timer ;
@Timeout
public void timeout(Timer timer) {
System.out.println("Hello EJB");
}
}
Run Code Online (Sandbox Code Playgroud)
然后叫它
timer = timerService.createTimer(10, 5000, null);
Run Code Online (Sandbox Code Playgroud)
它运作良好.我创建了一个客户端类,它调用一个创建计时器的方法和一个在计时器超时时调用的方法.
我忘记打电话取消然后它不会停止.redeploy取消呼叫从不停止它.重启Jboss 4.2.3从不停止它.我怎么能停止EJB计时器?谢谢你的帮助.
我想在我的代码中延迟1秒钟.下面是我试图延迟的代码.我认为它会轮询操作系统的日期和时间,并等到时间匹配.我有延迟的问题.我认为它不会轮询与等待时间匹配的时间,它只是坐在那里并冻结.它只会冻结我运行代码的大约5%的时间.我想知道Application.Wait以及是否有办法检查轮询时间是否大于等待时间.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Run Code Online (Sandbox Code Playgroud) 有一个我想在TextView中显示的时钟.
我原本以为有一些很好的功能可以做到这一点,但我找不到任何东西.我最终实现了自己使用Handler的方式.我问的是,是否有更好(更有效)的方式来显示实时更新时钟?
private Runnable mUpdateClockTask = new Runnable() {
public void run() {
setTime();
mClockHandler.postDelayed(this, 1000);
}
};
Run Code Online (Sandbox Code Playgroud)
这是我的处理程序,它每秒运行一次,然后我的设置时间和日期功能在下面
TextView mClockView;
public void setTime() {
Calendar cal = Calendar.getInstance();
int minutes = cal.get(Calendar.MINUTE);
if (DateFormat.is24HourFormat(this)) {
int hours = cal.get(Calendar.HOUR_OF_DAY);
mClockView.setText((hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes));
}
else {
int hours = cal.get(Calendar.HOUR);
mClockView.setText(hours + ":" + (minutes < 10 ? "0" + minutes : …Run Code Online (Sandbox Code Playgroud) 对于有ejb经验的人来说可能是一个愚蠢的问题......
我想为我的一个通过@Schedule注释使用Java EE调度程序的EJB bean动态读取和更改minute参数.任何人都知道如何在运行时执行此操作,而不是像下面那样在类中对其进行硬编码?如果我以编程方式执行此操作,我仍然可以使用@Schedule注释吗?
@Schedule(dayOfWeek = "0-5", hour = "0/2", minute = "0/20", timezone = "America/Los_Angeles")
private void checkInventory() {
}
Run Code Online (Sandbox Code Playgroud) 使用Java Timer,然后切换到ScheduledExecutorService,但我的问题没有修复.在系统时间更改之前安排的任务(通过ntpd)不会在指定的延迟时执行.没有任何日志记录:(.
在64位linux上使用我的目标中的jre 1.6.0_26 64位.
更新: ScheduledExecutorService在Windows上运行正常.问题仅出在运行64位JVM的基于64位Linux的系统上.它在运行32位JVM的64位linux上运行良好......很奇怪.在任何博客上都没有找到任何相同的参考.
IBM的JAVA SDK也存在同样的问题(ibm-java-sdk-7.0-0.0-x86_64-archive.bin).
我已经提交了针对JDK 7139684的缺陷,它被接受但已被关闭并标记为 6900441的副本.请投票给它,如果你觉得它的价值得到修复...我不知道为什么它已经修复了几年以上
以下是我用来测试此问题的示例代码:
package test;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* @author yogesh
*
*/
public class TimerCheck implements Runnable {
ScheduledExecutorService worker;
public TimerCheck(ScheduledExecutorService worker) {
super();
this.worker = worker;
this.worker.schedule(this, 1, TimeUnit.SECONDS);
}
private static void update() {
System.out.println("TimerCheck.update() "+new Date(System.currentTimeMillis()));
}
@Override
public void run() {
update();
worker.schedule(this, 1, TimeUnit.SECONDS);
}
/**
* @param args
*/
public static void …Run Code Online (Sandbox Code Playgroud) 我正在将一个应用程序从ActionScript3.0(Flex)移植到C#(WPF).AS3.0有一个名为getTimer()的方便实用程序,它返回自Flash虚拟机启动以来的时间毫秒.我在C#中通过类搜索
DateTime
DispatcherTimer
System.Diagnostics.Process
System.Diagnostics.Stopwatch
Run Code Online (Sandbox Code Playgroud)
但是没有发现这样的东西.这对我来说似乎是一个非常基本的功能.例如,在Mono上运行的Unity3D有一些熟悉的东西.我在这里想念一些实用工具吗?
提前致谢.
我正在尝试制作一个简单的计时器,在指定的秒数后发出蜂鸣声.我设法让它工作,但TimerTask继续在蜂鸣声后运行.现在我要停止执行吗?这是我的代码:
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Toolkit;
class Alarm {
public static void main(String[] args) {
long delay;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a delay in seconds: ");
delay = scan.nextInt()*1000;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
Toolkit.getDefaultToolkit().beep();
}
};
timer.schedule(task, delay);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个Java EE应用程序,它应该在部署后与外部系统一起启动同步过程.
我怎么能实现这个要求?
我有这样的剧本
setTimeout(function()
{
console.log("Timeout");
}, 1000 * 60);
Run Code Online (Sandbox Code Playgroud)
当我运行它并将系统时间改回一小时时,超时不会触发.如果我将时间向前更改一小时,则超时工作正常.
时间由外部程序改变,这使得调用就像 ioctl( rtcFd, RTC_SET_TIME, &newTime);
如何解决这个问题?
我们在OpenWRT态度调整上使用Node.js v0.10.15
谢谢