I use quartz to create a asynchronous job, but I found that the previous task haven't finish, the next task start.
In quartz there is queue job, stateful job.
In seam, how to do this?
This is really a Quartz question. In short, you should implement StatefulJob in your jobs.
That guarantees, that it cannot be executed concurrently.
Seam's jobs (created via @Asynchronous) are stateless, so you have to get hold of the Quartz
Scheduler and schedule them yourself (using the Quratz API)