1.thinkphp5配置自定义命令行php
/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类型的定时任务。而且该框架不只能够添加、删除定时任务,还能够将任务存储到数据库中,实现任务的持久化,因此使用起来很是方便。python
更多了解 https://pypi.org/project/APScheduler/thinkphp
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