阿卡预定了工作问题

时间:2012-03-16 23:37:01

标签: akka playframework-2.0

我一直在尝试使用Play 2.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();
                        }
                }
              }
        );
    }
}

为什么它会多次运行?

0 个答案:

没有答案