威尼斯wns.9778官网活动_vnsc威尼斯城官网

热门关键词: 威尼斯wns.9778官网活动,vnsc威尼斯城官网
当前位置:威尼斯wns.9778官网活动 > 计算机教程 > 威尼斯wns.9778官网活动利用Linux中的crontab实现分布

威尼斯wns.9778官网活动利用Linux中的crontab实现分布

文章作者:计算机教程 上传时间:2019-05-10

 ~ sudo apt update

像上面这样写好定时任务的逻辑类 

Defaults env_reset

 2、Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:

其实要实现这个很简单,首先编辑sudo的配置文件

@Controller
@RequestMapping("/task/topic")
public class TopicQuartzController {
  protected Logger logger = LoggerFactory.getLogger(TopicQuartzController.class);
  @Autowired
  private LiveTopicService liveTopicService;
  @RequestMapping("execute")
  @ResponseBody
  public CommonResult execute(HttpServletRequest request,HttpServletResponse response,String type){
    long t1 = System.currentTimeMillis();
    logger.error("topic定时器执行开始" type);
    CommonResult result = new CommonResult();
    if(QlchatUtil.isEmpty(type)){
      result.setMsg("参数为空");
      result.setSuccess(false);
      return result;
    }
    try {
      switch (type) {
        case "autoEndTopic":
          this.autoEndTopic();
          break;
        case "oneWeek":
          this.endTopicOneWeek();
          break;
        default:
          break;
      }
      result.setSuccess(true);
      result.setMsg("执行完成"   type);
    } catch (Exception e) {
      logger.error("topic定时器执行异常"   type, e);
      result.setMsg("topic定时器执行异常"   type);
      result.setSuccess(false);
    }
    long t2 = System.currentTimeMillis();
    logger.error("topic定时器执行结束" type ",耗时=" (t2 - t1)   "ms");
    return result;
  }
  private void autoEndTopic(){
    String sql = "SELECT id_ topicId FROM skg_live_topic lt WHERE lt.`status_` = 'beginning' AND lt.end_time_ IS NOT NULL AND lt.`end_time_` < NOW()";
    JdbcTemplate jdbcTemplate = SpringHelper.getBean(JdbcTemplate.class);
    List<Map<String, Object>> resultMap = jdbcTemplate.queryForList(sql);
    for (Map<String, Object> map : resultMap) {
      String topicId = String.valueOf(map.get("topicId"));
      try {
        LiveTopicPo liveTopicPo = liveTopicService.loadCache(topicId);
        liveTopicService.endTopic(liveTopicPo, liveTopicPo.getCreateBy());
      }catch (Exception e){
        logger.error("autoEndTopic异常"   topicId, e);
      }
    }
  }
  /**
   * 结束之前的没有结束时间的话题,只跑一周
   */
  private void endTopicOneWeek(){
    String sql = "SELECT id_ topicId FROM skg_live_topic lt WHERE lt.`status_` = 'beginning' AND lt.end_time_ IS NULL AND lt.start_time_ <= (NOW() - interval 48 hour)";
    JdbcTemplate jdbcTemplate = SpringHelper.getBean(JdbcTemplate.class);
    List<Map<String, Object>> resultMap = jdbcTemplate.queryForList(sql);
    for (Map<String, Object> map : resultMap) {
      String topicId = String.valueOf(map.get("topicId"));
      try {
        LiveTopicPo liveTopicPo = liveTopicService.loadCache(topicId);
        liveTopicService.endTopic(liveTopicPo, liveTopicPo.getCreateBy());
      }catch (Exception e){
        logger.error("autoEndTopic异常"   topicId, e);
      }
    }
  }
}

威尼斯wns.9778官网活动 1

总结

操作

  ②个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

Defaults env_reset,pwfeedback

    1、crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而Linux任务调度的工作主要分为以下两类:

您可能感兴趣的文章:

    ②停止:service crond stop

接着保存,然后退出终端重新进入,执行下面命令

  ①/etc/cron.deny 该文件中所列的用户不允许使用Crontab命令

[sudo] bboysoul 的密码: ****************

创建一个contab.txt 

之后找到

    ③查看:service crond status

sudo visudo

 3、/var/spool/cron/ 是所有用户的crontab文件

本文由威尼斯wns.9778官网活动发布于计算机教程,转载请注明出处:威尼斯wns.9778官网活动利用Linux中的crontab实现分布

关键词: