Я экспериментировал с Play 2.0 и использовал Akka для повторяющейся запланированной работы. Я бы хотел, чтобы работа выполнялась каждые 5 минут. У меня есть этот действительно базовый тест, и он работает по большей части. На основе этого теста он должен создавать файл PDF каждые 5 минут. Что происходит, я получаю 4 файла каждые 5 минут, а иногда и больше. Я не совсем уверен, почему. Ниже мой код.
package models;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
import javax.persistence.*;
import play.libs.*;
import play.db.ebean.*;
import akka.util.*;
import static java.util.concurrent.TimeUnit.*;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
@Entity
public class EmailService extends Model {
public EmailService() {
// Run the Service every 5 minutes
Akka.system().scheduler().schedule(
Duration.create(0, MILLISECONDS),
Duration.create(5, MINUTES),
new Runnable() {
public void run() {
try {
// TEST
com.itextpdf.text.Document document = new com.itextpdf.text.Document();
PdfWriter.getInstance(document, new FileOutputStream(UUID.randomUUID().toString() + ".pdf"));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
);
}
}
Идеи, почему он запускается несколько раз?