我正在使用LAMP来构建一个CMS,允许管理员将一个MP4上传到一个亚马逊S3桶,使用ElasticTrans编码器多次转换它,并更新本地数据库,这样就可以使用Cloud提供它们。
现在,每个步骤都按预期工作,一个简单的SWF工作流将其连接起来(只要我从命令行启动初学者、决策者和活动工作人员,正如我在所有示例中看到的那样)。
但是,我很难将这些部分与用户界面连接在一起:
pcntl_exec启动决策器和活动工作人员是正确的方法吗?有其他选择吗?1.和2.朝着正确的方向发展,那么在UI中实现反馈应该是简单的,使用AJAX调用检查数据库中记录的状态,在每个步骤中都会更新记录。否则,有什么更好的方法吗?编辑:某人可能会发现这很有用,在第2点:
让活动工作者在完成手头的任务后轮询另一个活动任务。这将创建一个循环,在该循环中,活动工作人员不断轮询并完成任务。 但是,直到决策器调度活动任务,这些投票就会超时,没有任务,而您的工作人员只需继续投票。
如果没有可用的决策任务,则Amazon会将连接打开60秒,并在可用时立即返回任务。如果没有任务可用,则Amazon返回一个空响应.如果另一项任务收到一个空的响应,请确保对它进行编程以进行投票。
发布于 2015-06-23 18:55:25
我建议永远独立于web服务器进程运行活动和决策人员。您可以将它们作为守护进程启动。他们应该在循环中轮询新任务,并根据您的逻辑处理它们。因此,没有必要在任务执行完成后再次启动它们。
工作流实例是从for服务器进程启动的,因为启动它们是一个相对较快的调用,它不等待工作流执行完成。
在UI中实现反馈通常是通过对"UIFeedback“这样的特殊活动类型进行like服务器代码轮询来完成的。当工作流需要通知UI一些事情时,它会安排这个活动,该活动被传递到When服务器,后者将活动输入数据转发给AJAX代码。
https://stackoverflow.com/questions/31007318
复制相似问题