- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在组装我的第一个商业 PHP 应用程序,它并不大,因为我仍在热切地学习 PHP :)
现在我仍处于规划我的应用程序的概念阶段,但我一直遇到一个问题,该应用程序应该由我的客户在他们自己的服务器上自行托管,并且将包含一些非常长的运行脚本,具体取决于每个客户在其应用程序中输入的数据量。
现在我想我有两个选择,要么使用 cronjobs,例如让一个或多个 cronjobs 在每个客户可以自己设置的时间运行,要么将整个数据处理作为在后台运行的守护进程。 .
我的问题是,因为它是一个自托管应用程序(并且每个服务器都不同)...是否建议尝试编写在客户服务器上启动后台进程的 php,或者这是您可以做的更多事情只在您自己的服务器上可靠地做...?
或者我应该为这些长时间运行的进程使用 cronjobs 吗?
(根据我的客户将在应用程序中输入的数据量,一个过程可能会运行 3 个小时以上)
这甚至是一个可以用 PHP 可靠地解决的问题吗...?如果这是一个奇怪的问题,请原谅,我真的没有使用 PHP 守护进程和/或由 php 创建的长时间运行的 cronjobs 的经验。
所以总结一下:商业自托管应用程序,包括长时间运行的进程、cronjobs 或守护进程?对于付费应用程序,您可以问心无愧地提供给您的客户,因为您知道它可以在各种不同的服务器上可靠地工作,这两者是否也是一种可靠的解决方案...?
编辑*PS:抱歉,我忘了说这个应用程序只针对 Linux 服务器,所以像 Debian、Ubuntu 等等。
最佳答案
简短的回答,不,如果这是客户端托管的解决方案,请不要使用后台进程。如果您采用 ASP 概念(应用程序服务提供商...不是 Active Server Pages ;)),那么您可以使用后台进程和连接到您的 sql 服务器并为您处理内容的外部应用程序做一些古怪的事情。
我的建议是创建一个强大的任务管理主干并将其链接到可靠的任务处理基础架构。我会建议您阅读我很久以前写的一篇关于后台进程和我为修复长时间运行的进程而采用的策略的旧帖子:
Start & Stop PHP Script from Backend Administrative Webpage
阅读愉快...
更新
我意识到我的旧帖子远不容易理解,所以这里是:
您需要 2 个模型:Job 和 JobQueue,2 个 Controller :JobProcessor、XYZProcessor
JobProcessor 可以在页面触发时由用户调用,也可以根据需要使用 cronjob。 JobProcessor::process() 是启动整个处理或继续处理的关键。它加载 JobQueues 并询问作业队列是否有工作要做。如果有工作要做,它会要求作业队列开始/继续它的工作。
JobQueue 模型:用于将多个 JOBS 依次排入队列,并通过保留某种关于正在运行的作业的 ID 和 STATE 来控制当前的作业。
作业模型:准确表示需要完成的工作,它包含例如将处理数据的 Controller 的名称、调用以处理数据的函数以及描述必须完成的工作的序列化配置属性。
XYZController:是包含处理方法的。当调用处理方法时, Controller 必须将它需要的所有内容加载到内存中,然后尽快处理每个单独的工作单元。
示例:
最终,您可以改为每次都打开一个套接字并要求处理器做某事,或者您可以排队一个 CronJob 来调用您的处理器。这样您的用户就不会每次都等待 3/4 的工作单元完成。
关于php - 商业 PHP 脚本,长时间运行的进程。守护进程与 cronjobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003511/
我目前正在使用 C# 和 WPF 在 .Net 4.0 中开发一个商业 Windows 应用程序(封闭源代码,免费演示,可用功能有限)。我现在正在寻找具有以下功能的 map 库: 全局在线 map 和
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
作为项目的一部分,我需要评估一些商业 C# 图表组件。我正在寻找功能丰富的组件,这些组件支持缩放/平移,可以处理实时更新,甚至可以为双击某个点等事件生成事件。 如果我需要从 WinForms 迁移到
这个问题在这里已经有了答案: Best solution to protect PHP code without encryption (11 个答案) 关闭 2 年前。 我正在考虑制作一个商业应用
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
抱歉这个愚蠢的问题,因为我是新手。如果我想构建一个商业 Windows 应用程序(我将以 $ 的价格出售),我在嵌入式数据存储方面有哪些选择?我会使用 MSDE 吗?这是我要与我的应用程序捆绑在一起的
我喜欢在 Android 商业(付费)应用程序中使用自定义字体 FiraSans。除了字体目录位置中的 SIL Open Font License.txt ..我是否需要强制添加其他任何内容,例如:
由于许可问题,我们公司几乎禁止我们在我们的商业产品中使用开源库。我们目前正在寻找可以读取和解析 CSV 文件的商业 .NET 库 - 有人有任何想法吗? 就功能而言,我确实需要能够将 CSV 文件读入
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 8 年前。 Improve
目前我希望将 paypal 支付集成到我的应用程序中,所以我下载了 django-paypal (dcramer) 以使用 paypal 沙箱对其进行测试。我尝试将 WPP express check
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我正在组装我的第一个商业 PHP 应用程序,它并不大,因为我仍在热切地学习 PHP :) 现在我仍处于规划我的应用程序的概念阶段,但我一直遇到一个问题,该应用程序应该由我的客户在他们自己的服务器上自行
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 8 年前。 Improve
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我的网站是使用 php 文件构建的。我在这些文件中使用了商业 secret 算法,我的数据库根密码也存储在这些 php 文件中。我的数据库用于存储许多客户的私有(private)医疗数据。 这是否被认
我知道如何在 map 上设置点击事件,并且在点击随机位置时效果很好。但是当我点击一个商业地点时,谷歌地图会显示包含商业信息的气球,但不会向我的 JavaScript 引发点击事件。 您可以在此地理编码
有时我必须对 Java 代码做一些分析工作,我想知道为什么我应该让我的老板在商业分析器中进行调查,而不是只使用 Netbeans 或 JConsole 中的分析器? 值得投资的 killer 级功能是
我使用 Airbrake 通知我 Spree Commerce 商店中的错误。现在我想使用 spree 的 API,当我尝试发布到 http://localhost:3000/api/products
为了实现基于 Windows 的翻页应用程序,我需要能够将大量 PDF 页面转换为高质量的 JPG,而不仅仅是缩略图。 目的是为此实现最佳质量/文件大小,类似于 Photoshops Save for
我是一名优秀的程序员,十分优秀!