1.thinkphp5配置自定义命令行

/application/console/command
namespace app\console\command;

use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use app\autotask\task; class Test extends Command{ /**
* 定义命令
* 命令名称是 test
*/
protected function configure()
{
$this->setName('test')->setDescription('Here is the market test task ');
}
/**
* 命令执行的内容
* @param Input $input
* @param Output $output
*/
protected function execute(Input $input, Output $output)
{
$output->writeln("StartCommand Test:");
$object = new \app\autotask\task\Test();
$object->run();
$output->writeln("End Test..");
}
}

2.python安装APScheduler是Python的一个定时任务框架,可以很方便的满足用户定时执行或者周期执行任务的需求,它提供了基于日期date、固定时间间隔interval 、以及类似于Linux上的定时任务crontab类型的定时任务。并且该框架不仅可以添加、删除定时任务,还可以将任务存储到数据库中,实现任务的持久化,所以使用起来非常方便。

更多了解  https://pypi.org/project/APScheduler/

pip install apscheduler
#!/user/bin/env python
#
# -*- coding: UTF-8 -*- import time
from apscheduler.schedulers.blocking import BlockingScheduler
import logging
import os logger = logging.getLogger()
logger.setLevel(logging.DEBUG) fileHandler = logging.FileHandler('./log/task.log', mode='w', encoding='UTF-8')
fileHandler.setLevel(logging.NOTSET) formatter = logging.Formatter('%(asctime)s - %(message)s')
fileHandler.setFormatter(formatter) logger.addHandler(fileHandler) def task():
output = os.popen('php think test')
logger.info(output)
print output.read() if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(task, 'cron', hour='9-22', second = '*/1')
#scheduler.add_job(task, 'cron', hour='9-22', second = '*/1')
scheduler.add_job(task, 'cron', hour='9-22', second = '*/1')
scheduler.add_job(task, 'cron', hour = 22,minute = 1)
scheduler.add_job(task, 'interval', minutes=1)
print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C')) try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass

  

最新文章

  1. <<redis设计和实现>>读书笔记
  2. shell 实现Linux 控制台下树形显示目录
  3. js函数的几个特殊点
  4. 锋利的jQuery-2--一个显示和隐藏的例子,主要看写法
  5. 覆盖(override)和重载(overload)
  6. 使用Github+Hexo框架搭建部署自己的博客
  7. 原生JS的Ajax
  8. SpringBoot(四):banner的控制
  9. 网络协议 21 - RPC 协议(中)- 基于 JSON 的 RESTful 接口协议
  10. 行为驱动:Cucumber + Selenium + Java(一) - 环境搭建
  11. springboot 事务管理
  12. 网络编程基础【day09】:简单socket实例(二)
  13. Social Grouping for Multi-Target Tracking and Head Pose Estimation in Video(翻译)
  14. LintCode Binary Search
  15. NOIP2018退役祭
  16. PL/SQL Developer安装配置
  17. 获取请求地址的IP地址
  18. 高并发第十单:J.U.C AQS(AbstractQueuedSynchronizer) 组件:CountDownLatch. CyclicBarrier .Semaphore
  19. MVC上传(单文件)
  20. Learn Rails5.2- Scaffolding and REST,flash.now, flash.keep; Access via JSON

热门文章

  1. js数组去重解决方案
  2. python 基础之字符串方法
  3. mysql cmmand not found
  4. jvm学习:类的加载、连接、初始化、常量
  5. GsonUtils.getGson().fromJson() 转泛型集合用法
  6. [原]OpeanLayers3 For ArcGIS MapServer
  7. [理解] Linux 作为一个服务器是怎样的存在 (一)
  8. PHP+Mysql实现网站顶和踩投票功能实例
  9. MySQL帮助文档的使用
  10. D. Number Of Permutations 符合条件的排列种类