在Ubuntu系统中,使用crontab进行任务调度是一种常见的方法。但是,crontab本身并不支持分布式调度。如果你需要在多台机器上实现分布式调度,你可以考虑使用其他的工具,例如Celery、Apache Airflow或者Kubernetes CronJobs等。
以下是使用Celery实现分布式调度的一个简单示例:
- 安装Celery:
pip install celery
- 创建一个Celery应用:
# myapp/celery.py from celery import Celery app = Celery('myapp', broker='pyamqp://guest@localhost//') @app.task def add(x, y): return x + y
- 在crontab中添加任务调度:
# 编辑crontab文件 crontab -e # 添加以下内容,每分钟执行一次add任务 * * * * * /usr/bin/python3 /path/to/your/myapp/celery.py add 4 6 >> /var/log/celery.log 2>&1
- 启动Celery worker:
celery -A myapp.celery worker --loglevel=info
这样,你就可以在多台机器上运行Celery worker来实现分布式调度。当然,这只是一个简单的示例,你可以根据自己的需求进行配置和优化。
如果你需要更高级的功能,例如任务队列、任务优先级、任务重试等,你可以查阅Celery的官方文档以获取更多信息。