Akka预定工作问题

Akka预定工作问题,akka,playframework-2.0,Akka,Playframework 2.0,我一直在试验Play2.0,并使用Akka进行定期计划作业。我希望作业每5分钟运行一次。我有一个非常基本的测试,它在大多数情况下都有效。基于此测试,它应该每5分钟创建一个PDF文件。我每5分钟写4个文件,有时甚至更多。我不太清楚为什么。下面是我的代码 package models; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.*; im

我一直在试验Play2.0,并使用Akka进行定期计划作业。我希望作业每5分钟运行一次。我有一个非常基本的测试,它在大多数情况下都有效。基于此测试,它应该每5分钟创建一个PDF文件。我每5分钟写4个文件,有时甚至更多。我不太清楚为什么。下面是我的代码

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();
                        }
                }
              }
        );
    }
}

想知道为什么它会运行多次吗?

我和你一样困惑不解。但是出于好奇:你为什么把你的类放到
模型
包中,并将其注释为JPA
实体
?这只是一种预感,但你能试着同时改变这两种情况并检查问题是否仍然存在吗?(如果问题在AWRDS之后根本没有出现,试着从一个控制器中调用您的作业,然后请求该URL一次。)好的..我来试一试,看看会发生什么。嗨,卡斯滕。它工作正常,每分钟只生成一个文件。我创建了一个Global.java文件,并在onStart中添加了对参与者的调用。希望将您的建议移动到一个答案,以便我可以接受它。我说得太早了。看起来有几次多个文件同时被写入,虽然不是每次都像以前那样。