我有一个网站,运行从管理面板相当密集的工作。我想以某种方式运行它,而不干扰它产生的输出。
让它变得更清楚。在提交表单时,我必须解压缩一个大的zip文件,并且对于我找到的每个图像,我必须将其插入到我的数据库中。此过程需要3-4分钟以上。所以我想让作业运行,并输出作业正在被处理。我不知道是否可以通知用户(可能是通过ajax调用),但我不介意。
有可能吗?
谢谢
发布于 2012-05-04 18:41:57
这取决于您在处理数据时希望用户做什么。
你想让他等一下吗?然后使用AJAX调用并显示进度条(或任何您喜欢的),直到任务完成。当任务完成时,通知用户(再次通过ajax ),并继续使用您存储的(任何)功能。
如果你想在用户做其他事情的时候处理文件,你可以在后台调用(CakePHP) ShellTask,让它发挥它的魔力。如果希望用户能够查看导入的状态,则可以创建一个imports表,该表存储有关所有导入的信息。通过使用“状态”字段,用户可以知道,例如,任务仍在运行。当shell任务完成时,您可以更改导入的“状态”并执行任何操作。这需要在任务本身中完成,但这不是问题,因为您可以在Shell任务中使用模型-与使用use models in Shells的方式相同。
希望这对你有所帮助,如果你需要任何进一步的澄清,请发表评论。
https://stackoverflow.com/questions/10351376
复制相似问题