byjg/xmlnuke-cmdline

以批处理和守护进程/服务的形式在命令行中运行XMLNuke模块和类

安装: 8

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

类型:项目

dev-master 2015-05-14 19:20 UTC

This package is auto-updated.

Last update: 2024-09-18 17:53:00 UTC


README

启用从命令行运行现有的XMLNuke模块,而无需更改您的模块。

安装

项目级别

composer require "byjg/xmlnuke-cmdline=dev-master"

整个系统

composer global require "byjg/xmlnuke-cmdline=dev-master"

用法

语法是

runxmlnuke.php SCRIPT PARAMETERS

例如

runxmlnuke.php xmlnuke <FOLDER_APP> module=Lesson1.Sample1 raw=json xpath=//mediaitem

参数 SCRIPT 可以是

  • xmlnuke - 运行具有所有参数的典型 XMLNuke 模块
  • ws - 运行实现 SOAP 接口的一个类。更多内容请参阅这里
  • daemon - 创建 Linux 守护进程服务。更多详情请见下文。

运行 SOAP 服务

命令行中的 SOAP 服务只能通过 GET 请求调用 Web 方法。命令行可能类似于

runxmlnuke.php ws <FOLDER_APP> ws=/Lesson1.SOAP.SampleWebService svc=getEcho "text=Some Text"

使用 XMLNuke 创建守护进程/服务

服务是一个无限运行的程序。您可以通过实现一个具有 execute() 方法的类来在 XMLNuke 中创建服务。此方法不需要创建循环。XMLNuke 会为您处理循环。

示例

namespace Lesson1\Classes;

class Service
{
	protected $loop = 0;

	public function execute()
	{
		$this->loop++;
		echo $this->loop ."\n";

		return true;
	}

}

此方法必须返回 true 以继续服务,或返回 false 以停止服务。要运行此守护进程

sudo runxmlnuke.php daemon service=Lesson1.Classes.Service &

服务将以静默方式运行,但将创建两个日志文件

  • /var/log/xmlnuke.daemon/Lesson1.Classes.Service.log - 服务的所有输出
  • /var/log/xmlnuke.daemon/Lesson1.Classes.Service.error.log - 服务生成的所有错误。

创建 init 服务

您可以通过将此文件复制到 Linux 系统的 /etc/init 文件夹中来在系统中创建服务

示例: sample.conf

description "Sample Daemon"
author      "JG"

# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

exec /opt/xmlnuke/utils/cmdline/runxmlnuke.sh daemon <FOLDER_YOUR_APP> service=Lesson1.Classes.Service

现在您可以使用以下命令启动或停止服务

service sample start

service sample stop

综合以上内容