php - Wordpress 插件禁用事件

标签 php wordpress plugins

我正在编写一个 Wordpress 插件,它在启动时运行 PHP 脚本,并使用 WebSocket 和日志连接连续监听事件。

例如

shell_exec('php restserver.php >restserver.log 2>&1 &');

提到的脚本在 Wordpress API 之外。我知道使用 execshell_exec 是一种极端的方法(通常是对一个破问题的回答)。

我已经设法记录了 restserver.php 进程 ID,以便在插件被禁用时能够将其杀死,并且在插件重新启动时不会重新启动脚本。

简而言之...

  1. 有没有更好的方法来运行独立于 wordpress 的后台 php 进程?
  2. 是否有“最佳实践”方法来检测插件禁用事件并在此之前启动终止进程命令?

编辑:问题 2 的 secret 显然在于使用 register_deactivation_hook()register_activation_hook() 之后,注册您的类或函数。

无论如何它对我有用。欢迎提供有关正确使用 exec() 的更多信息。

最佳答案

有一个名为 GearMan 的 unix 服务器它专为并行执行各种任务而设计。它有一个 PHP 客户端库,允许您启动工作人员并监视他们的执行,包括后台作业。所以这将是一种(优雅的)方法,但它需要安装 GearMan 服务器和客户端库,这意味着管理访问。

另一种简单的方法是添加 cronjob为了这。这只需要访问写入 cronjob 文件并要求 cronjob 守护进程加载新设置。为了您的任务目的,从 cronjob 启动 PHP 比从 exec 调用启动它更有意义。

关于php - Wordpress 插件禁用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185685/

相关文章:

linux - 如何将 Dell Equillogic 添加到 Nagios

php - php中的命名空间

php - PHP 中的 MySQL 查询给出了明显的错误结果

php - 改进查询运行时间(加载页面需要 20 秒以上)

wordpress - 某些东西在 Wordpress 网站中创建了奇怪的 URL

c# - 使用 IE 插件浏览器帮助程序对象 (BHO) 访问 Frame 或 Iframe 中的数据

php - POST 请求中的方括号

html - Div 在另一个 div 下而不是预期的

php - 在 woocommerce 属性中添加自定义字段

c# - 可以为 C++ 应用程序编写 C# DLL(插件)吗?