zoukankan      html  css  js  c++  java
  • Java play freamwork 新闻通知的定时发送

    package com.wanhua.thread;
    //定时发送任务线程
    import java.util.List;
    import java.util.TimerTask;

    import play.db.jpa.JPAPlugin;

    import controllers.News;

    import models.ChildrenNew;
    import models.Log;
    import models.New;

    public class SendNewsTask extends TimerTask {
        // 选择发送的子新闻
        private List<ChildrenNew> childrenNews;
        // 发送时间
        private String issuesTime;
        // 作者
        private String author;

        /**
         * 构造函数
         *
         * @param childrenNews
         */
        public SendNewsTask(String author, String issuesTime, List<ChildrenNew> childrenNews) {
            this.author = author;
            this.issuesTime = issuesTime;
            this.childrenNews = childrenNews;
        }

        @Override
        public void run() {
            // 选择发送的子新闻
            List<ChildrenNew> childrenNews = this.childrenNews;
            String issuesTime = this.issuesTime;
            String author = this.author;
            // 添加JPA环境
            JPAPlugin.startTx(false);
            // 发送新闻任务
            New.sendNewsTask(author, issuesTime, childrenNews);
            JPAPlugin.closeTx(false);

        }
    }
        

        // 定时任务线程的调用,实现定时发送新闻通知
                Timestamp publishTime = PrefUtil.forTimestamp(issuesTime);

         //定时发送的某个时刻
                Date sendDate = publishTime;
                Timer timer = new Timer();
                try {
                    // 定时发送新闻通知
                    timer.schedule(new SendNewsTask(author, issuesTime, childrenNews), sendDate); // 一个特定时间后运行
                } catch (Exception e) {
                    // Timer与TimerTask是独立的两个物件,当使用Timer的schedule()方法排定TimerTask之后,
                    // 则必须等执行Timer的cancel()执行之后,让TimerTask与Timer脱离关系
                    timer.cancel();
                }

  • 相关阅读:
    linux内核中的crng是什么?
    linux内核中的hisi_sas是什么?
    linux内核中的brd是什么?
    内核中的xenfs是什么?
    linux内核中的cfq输入输出调度算法
    linux内核中的最简单的输入输出调度算法noop
    linux内核中侧async_tx是什么?
    linux内核中的fuse是什么?
    Executors.newSingleThreadScheduledExecutor();线程池中放入多个线程问题
    Executors.newSingleThreadScheduledExecutor() 问题
  • 原文地址:https://www.cnblogs.com/xunfang123/p/4195935.html
Copyright © 2011-2022 走看看