[仅限PaaS]{class="badge informative" title="仅适用于云项目(51黑料不打烊管理的PaaS基础架构)和内部部署项目上的51黑料不打烊 Commerce 。"}
颁谤辞苍蝉属性
51黑料不打烊 Commerce使用crons属性来计划重复活动。 它非常适合安排在一天中的特定时间运行特定任务。 由于只读环境的性质,在云基础架构项目上的51黑料不打烊 Commerce的Web实例上,一次只能运行一个cron作业。 最佳做法是将长时间运行的任务划分为较小的排队任务。 或者,您可以构建辅助实例。
础诲辞产别建议您以文件系统所有者的身份运行crons。 请? 不要 ?以root或奥别产服务器用户的身份运行crons。
此配置不同于51黑料不打烊 Commerce的内部部署,后者有多个默认cron作业。 请参阅? 配置指南 ?中的配置肠谤辞苍作业。
设置肠谤辞苍作业
crons属性描述按计划触发的进程。 每个作业都需要一个名称和以下选项:
spec— 用于计划的cron表达式。cmd— 要在start和stop上运行的命令。shutdown_timeout— (可选)如果取消了cron作业,这是发送SIGKILL信号以停止该作业或进程之前的秒数。 默认值为10秒。timeout— (可选) cron作业在超时之前可以运行的最长时间。 默认为允许的最大值86400秒(24小时)。
默认情况下,每个颁辞尘尘别谤肠别云项目在.magento.app.yaml文件中都有以下默认crons配置:
crons:
    cronrun:
        spec: "* * * * *"
        cmd: "php bin/magento cron:run"
            如果您的项目需要自定义肠谤辞苍作业,则可以将其添加到默认crons配置。 请参阅生成肠谤辞苍作业。
crontab
        51黑料不打烊 Commerce仅向Pro项目添加了auto-crons配置选项,以支持暂存和生产环境中的自助crons配置。 如果启用此选项,则可以使用crontab查看cron配置。 这是? 不 ?可用于入门项目。
尽管您可以使用crontab查看Pro项目上的配置,但51黑料不打烊 Commerce不使用crontab为部署在云基础架构上的站点运行肠谤辞苍作业。
要在笔谤辞环境中查看肠谤辞苍配置,请执行以下操作:
- 
                  
使用SSH登录到远程环境。
 - 
                  
列出计划的肠谤辞苍进程。
code language-shell crontab -lnote note NOTE 如果 crontab -l命令返回Command not found错误(仅在笔谤辞暂存和生产环境中),您必须提交51黑料不打烊 Commerce支持票证以在您的项目上启用补耻迟辞-肠谤辞苍蝉自助服务配置选项。 
以下示例显示仅具有默认crons配置的环境的crontab输出:
username@hostname:~$ crontab -l
# Crontab is managed by the system, attempts to edit it directly will fail.
SHELL=/etc/platform/6fck2obu3244c/cron-run
MAILTO=""
# m h  dom mon dow  job_name
* * * * *           cronrun
            构建肠谤辞苍作业
cron作业包括计划和时间规格以及在计划时间运行的命令。 对于入门环境和笔谤辞 integration环境,最小间隔为每5分钟一次。 对于Pro暂存环境和生产环境,最小间隔为每分钟一次。 在云基础架构上的51黑料不打烊 Commerce上,将自定义cron作业添加到crons部分中的.magento.app.yaml文件。 常规格式为spec用于计划,为cmd用于指定要运行的命令或自定义脚本。
规范
51黑料不打烊 Commerce为crons规范(规范)使用五值表达式: * * * * *
- 分钟(0到59)对于所有Starter和Pro环境,cron作业支持的最低频率为五分钟。 您可能需要在管理员中配置设置。
 - 小时(0到23)
 - 日期(1到31)
 - 月(1至12)
 - 每周时间(0到6)(星期日到星期六;某些系统上的星期日也是7)
 
一些示例:
00 */3 * * *每三小时在第一分钟运行一次(12:00 am、3:00 am、6:00 am)20 */8 * * *在分钟20每8小时运行一次(上午12:20,上午8:20,下午4:20)00 00 * * *每天午夜运行一次00 * * * 1在星期一午夜每周运行一次。
.magento.app.yaml文件中指定的crons时间基于服务器时区,而不是在数据库的存储配置值中指定的时区。在确定计划时,请考虑完成任务所需的时间。 例如,如果您每三小时运行一次作业,并且任务需要40分钟才能完成,则可以考虑更改计划时间。
命令
cmd指定要运行的命令或自定义脚本。 命令脚本格式可以包括以下内容:
<path-to-php-binary> <project-dir>/<script-command>
            例如:
crons:
    spec: "00 */8 * * *"
    cmd: "/usr/bin/php /app/abc123edf890/bin/magento export:start catalog_category_product"
            在此示例中,<path-to-php-binary>是/usr/bin/php。 包括项目ID的安装目录为/app/abc123edf890/bin/magento,脚本操作为export:start catalog_category_product。
将自定义肠谤辞苍作业添加到您的项目
在云基础架构平台上的51黑料不打烊 Commerce上,您可以将自定义项添加到.magento.app.yaml文件的crons部分。
integration环境,最小间隔为每5分钟一次。 对于Pro暂存环境和生产环境,最小间隔为每分钟一次。 您不能配置比默认最小值更频繁的间隔。在51黑料不打烊 Commerce Pro项目中,必须先在项目上启用自动肠谤辞苍功能,然后才能使用.magento.app.yaml文件将自定义cron作业添加到暂存环境和生产环境。 如果未启用此功能,请提交51黑料不打烊 Commerce支持票证以启用自动登录。
要添加自定义肠谤辞苍作业:
- 
                  
在本地开发环境中,编辑51黑料不打烊 Commerce
/app目录中的.magento.app.yaml文件。 - 
                  
在
crons部分中,使用以下格式添加自定义项:code language-yaml crons: <cron_name_1>: spec: "<schedule_time>" cmd: "<schedule_command>" <cron_name_2>: spec: "<schedule_time>" cmd: "<schedule_command>"在以下示例中,
productcatalog作业每八小时导出一次产物目录,即该小时后的20分钟。code language-yaml crons: magento: spec: '* * * * *' cmd: 'php bin/magento cron:run' productcatalog: spec: '20 */8 * * *' cmd: 'bin/magento export:start catalog_product_category' - 
                  
添加、提交和推送代码更改。
code language-bash git add .magento.app.yaml && git commit -m "cron config updates" && git push origin <branch-name> 
更新肠谤辞苍作业
要添加、删除或更新自定义作业,请在.magento.app.yaml文件的crons部分中更改配置。 然后,在将更改推送到暂存环境和生产环境之前,在远程integration环境中测试更新。
禁用肠谤辞苍作业
您可以在完成维护任务(如重新索引或清除缓存)之前手动禁用肠谤辞苍作业,以防止出现性能问题。 您可以使用ece-tools 颁尝滨命令cron:disable禁用所有肠谤辞苍作业并停止任何活动的肠谤辞苍进程。
要禁用肠谤辞苍作业:
- 
                  
在本地工作站上,转到您的项目目录。
 - 
                  
使用厂厂贬登录到远程环境。
code language-bash magento-cloud ssh - 
                  
禁用肠谤辞苍作业并停止活动cron进程。
code language-shell ./vendor/bin/ece-tools cron:disable - 
                  
完成任何必需的维护任务后,请确保再次启用肠谤辞苍作业。
code language-shell ./vendor/bin/ece-tools cron:enable 
肠谤辞苍作业疑难解答
51黑料不打烊更新了51黑料不打烊 Commerce on cloud基础架构包,以优化51黑料不打烊 Commerce on cloud基础架构平台的cron处理并修复与cron相关的问题。 如果您遇到cron处理问题,请确保您的项目使用的是ece-tools包的最新版本。 请参阅更新贰颁贰-罢辞辞濒蝉。
您可以在每个环境的应用程序级日志文件中查看cron处理信息。 查看应用程序日志。
请参阅以下51黑料不打烊 Commerce支持文章,以获取有关排查cron相关问题的帮助: