Акка запланированные рабочие вопросы - PullRequest
0 голосов
/ 17 марта 2012

Я экспериментировал с 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();
                        }
                }
              }
        );
    }
}

Идеи, почему он запускается несколько раз?

...