Maven dependency:
<dependency>
<groupId>com.softwaremill.common</groupId>
<artifactId>softwaremill-sqs</artifactId>
<version>...</version>
</dependency>
A utility for scheduling and executing background jobs. The messaging system used is SQS.
To use, first implement a Task
and TaskExecutor
(describing what the job is and how to run it). See SendEmailTask
for an example. Instances of Task
are serialized and sent to the queue. During execution, they are passed to the
appropriate TaskExecutor
.
Second, create an EJB:
@Stateless
@LocalBinding(jndiBinding = "MyAppSQSTaskTimerBean")
public class MyAppSQSTaskTimerBean extends SQSTaskTimerBean { }
You will need to run the startTimer()
method on this EJB when your application starts, to kick off the timer. This can
be done for example in a web.xml
servlet context listener.
You can now schedule jobs by running:
MyAppSQSTaskTimerBean.scheduleTask(task)
Configuration of SQS access is done through the sqs.conf
file. Minimal contents of this file:
AWSAccessKeyId=
SecretAccessKey=
queue=
To additionaly send e-mails using the SendEmailTask
:
smtpHost=
smtpPort=
from=
encoding=UTF-8