Cronicle项目配置详解:从基础设置到高级功能
配置概述
Cronicle作为一个分布式任务调度系统,其核心配置文件位于/opt/cronicle/conf/config.json。这个JSON格式的配置文件包含了系统运行所需的所有参数,从基础设置到高级功能应有尽有。本文将深入解析这些配置项,帮助您更好地理解和定制Cronicle系统。
基础配置
系统基础参数
base_app_url是Cronicle系统的基础URL,用于在邮件通知中生成自引用链接。如果使用负载均衡器,应设置为虚拟主机名。例如:
"base_app_url": "http://local.cronicle.com:3012"
secret_key是多服务器集群中用于服务器间API请求认证的共享密钥。安装脚本会自动生成随机字符串,但您可以自定义,只需确保所有服务器使用相同的密钥。
日志管理
Cronicle提供了灵活的日志配置选项:
log_dir:日志文件存储目录,默认为/opt/cronicle/logslog_filename:支持三种日志文件组织方式log_archive_path:支持日志归档,可使用日期占位符如[yyyy]、[mm]等copy_job_logs_to:可将任务日志复制到指定目录供其他日志系统处理
系统维护
maintenance参数设置每日维护时间,默认为凌晨4点。维护期间系统仍可用,但UI性能可能略有影响。
list_row_max控制历史记录(如活动日志、已完成任务等)的最大保留数量,默认为10000条。超过此限制时,最旧的记录会在维护时被删除。
邮件通知配置
Cronicle的邮件通知系统配置灵活:
email_from:设置发件人地址smtp_hostname和smtp_port:SMTP服务器配置mail_options:支持SMTP SSL认证和本地sendmail配置
示例SMTP认证配置:
"mail_options": {
"secure": true,
"auth": { "user": "username", "pass": "password" }
}
任务管理配置
资源限制
Cronicle允许对任务设置资源限制:
job_memory_max:内存限制(字节),默认1GBjob_memory_sustain:允许超过内存限制的持续时间(秒)job_cpu_max:CPU使用限制(单核百分比)
这些限制也可以在UI中按类别或事件自定义。
任务超时处理
child_kill_timeout:发送TERM信号后等待子进程退出的时间(默认10秒)dead_job_timeout:失去连接的worker上任务被认为失败的时间(默认120秒)
多服务器集群配置
对于多服务器环境,关键配置包括:
master_ping_freq:主服务器ping工作服务器的频率(默认20秒)master_ping_timeout:备份服务器认为主服务器失效的等待时间(默认60秒)udp_broadcast_port:服务器自动发现的UDP端口(默认3014)
Web Hook集成
Cronicle支持强大的Web Hook功能:
universal_web_hook:全局Web Hook URL,所有任务都会触发web_hook_custom_data:自定义JSON数据,会合并到Web Hook请求中web_hook_text_templates:自定义Web Hook通知文本模板
示例Web Hook配置:
"universal_web_hook": "https://api.example.com/webhook",
"web_hook_custom_data": {
"environment": "production"
}
存储配置
Cronicle支持多种存储后端:
- 文件系统:默认存储方式,简单可靠
- Couchbase:适合大规模分布式环境
- Amazon S3:云存储解决方案
最佳实践建议
- 生产环境中建议设置合理的资源限制,防止任务占用过多系统资源
- 对于关键任务,适当增加
dead_job_timeout以避免网络短暂中断导致任务失败 - 定期检查日志归档设置,确保不会占用过多磁盘空间
- 多服务器环境中,确保所有节点的
secret_key一致 - 根据实际需求调整
list_row_max和job_data_expire_days以平衡历史记录保留和存储空间
通过合理配置这些参数,您可以充分发挥Cronicle的强大功能,构建出稳定可靠的任务调度系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



