j2ee项目中quartz定时任务的疑问?

请问在j2ee项目中可以设置多个定时任务吗?若可以是不是要考虑用多线程来实现定时任务?因为我在操作项目的同时有可能定时任务也在执行,并发操作了。疑惑中。。。。请亲们指点迷津!!!!注(定时任务用的是spring的quartz框架)?

这样是不行的,因为Quartz是和spring分离的
你的类都需要自己去注入,而且你的services不应该写到一起去啊
建议把定时任务类,写在单独的类中
自己写个Utils类
里面定义个static 的ApplicationContext
spring加载的时候就把applicationContext注入进去
以后用的时候就直接通过applicationContext.getBean拿到对象了
需要什么直接拿什么出来用就可以了

当然可以设置多个定时任务,多个factory,多个trigger,都可以
quartz定时任务也是通过线程来调用的方法

可以设置,但是要注意设置多个定时任务有没有操作共同的资源,这个时候会产生竞争,如果确保这个资源可以由多个线程同时对其操作的话那没问题。
如果像计数器这种东西,多个定时任务同时计数的话就有问题了,要确保计数的原子操作。

可以设置多个定时任务的,每个定时任务都是一个独立的线程的,如果你的定时任务和一些实时操作的,抑或这些定时任务之间有访问共同资源,那么就要考虑下线程安全,要做线程同步,如使用synchronized

可以设置多个定时任务,quatz就是用新建线程的方式提供功能的,因此你的代码里如果有资源共享,那就要注意并发操作引起的问题,并通过加锁或同步的方式解决

这个必须可以定时设置多个任务了,没一个任务开启一个新的线程,正如楼上各位所说的一样需要考虑是否在操作统一资源,不能的话设置同步,那么定时的一个操作统一资源的对象就要等待了

我用quatz是晚上8点定时清除一个大表中数据,清除大表数据的晚上8点时sql语句是动态生成的,如果应用部署在websphere的单server上是没有问题的,但如果部署在websphere的集群上就只会有一个server在跑定时任务,其他的server就会抛出异常,虽然这样不影响正常清理数据,但我个人觉得其他server抛出异常不干活,而只有一个server在干活,服务器资源有点浪费,分析原因主要是部署在集群上以后,每个server都会动态生成清除大表数据的sql语句,在一个server抢到第一条sql删除语句在执行时,其他server随后也抢到这条同一sql语句再执行时就会报错,然后就都抛异常,不干活了,只有第一个server在干活,直到把活都干完,怎么让server都在干活呢?就是提高清除大表数据的效率。