首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Play Framework -每n小时调用一次模型方法

Play Framework -每n小时调用一次模型方法
EN

Stack Overflow用户
提问于 2013-04-30 04:29:08
回答 1查看 185关注 0票数 1

我的一个模型类中有一个方法,可以删除日期字段过期的模型对象。例如,我想知道是否可以每24小时自动运行一次此方法?在某种程度上,我喜欢为我的play应用程序提供一个系统内cronjob。

我使用的是play 2.0.4 -以下是model方法:

代码语言:javascript
复制
public static void removeHistoricDates() throws ParseException {

    List<Book> allBooks = new ArrayList<Book>();
    allBooks = find.all();

    //Empty-list that out-of-date Books will be added to
    List<Book> historicDates = new ArrayList<Book>();

    SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");

    for(Book Book: allBooks) {

        Date BookDate = formatter.parse(Book.date);
        Date todayDate = new Date();

        if(todayDate.after(BookDate)) {
            historicDates.add(Book);
        } 
    }

    for(Book outofDate: historicDates) {
        find.ref(outofDate.id).delete();
    }
}

目前,我只是在调用控制器/应用程序中的方法时调用此方法,以证明它是有效的-它确实有效。我希望做的是每24小时独立调用这个模型方法,而不依赖于用户调用的某个应用程序方法。

更新:所以目前我考虑的是this,因为Heroku是我正在使用的托管服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 18:42:52

就像派一样简单!Play依赖于Akka来调度任务。查看the corresponding page in the docsAkka docs on the Scheduler

你会想要做这样的事情:

代码语言:javascript
复制
Akka.system().scheduler().schedule(
  Duration.create(24, TimeUnit.HOURS),
  new Runnable() {
    public void run() {
      // your code here.
    }
  }
); 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16287639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档