如何解决如何在Laravel中处理许多工作彼此依赖?
我们目前正在使用Laravel开发网络软件,该软件使用户可以选择在外国服务器上设置,管理和维护多个网站(在这种情况下,使用Craft CMS)。
根据用户在网络工具中做出或触发的动作和更改,需要启动不同的排队作业。这些作业连接到外部服务器并执行命令/更改文件等。
仅举几个动作(/工作?)的例子:
- InstallCraftCms
- SetupDbCredentials
- InstallDb
- InstallWebsite
- InstallRequiredPlugins
- 创建主页
- CreateMatrixField
- SyncBlockTypes
- UpdateCms
- UpdatePlugins
- 备份
- DeployAsset(构建CSS / JS并上传)
- DeployTemplates
- UploadFavicon
- ...
每个作业都有预检查项(例如,如果尚未安装CMS,则仅安装CMS)。并且每一项工作在执行后都将进行成功测试。
现在,根据网络工具的操作和更改,我需要执行特定作业。对于初始设置,我几乎需要执行所有作业。如果用户更改了图标,则只需要执行一项工作即可。
作业有时相互依赖。例如在初始设置中。如果先前的作业 InstallWebsite 不成功,则不需要运行 InstallRequiredPlugins 。
这是我第一次从事这些“密集”的工作,并且看到了很多问题:
-
如何处理乔布斯的“链”及其依赖项?是否有任何模式/库可以放置5个作业并定义以停止执行所有作业(如果此作业或此作业失败)?
-
什么是使用户的作业结果(日志)尽可能透明的最佳实践?将它们存储在数据库的单独“日志”表中吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。