mkrmr/emphloyer-pdo

Emphloyer 的 PDO 后端

v0.6.0 2019-05-09 15:45 UTC

This package is auto-updated.

Last update: 2024-09-11 21:53:35 UTC


README

此扩展为 Emphloyer 提供了一个 PDO 后端。此扩展仅在 MySQL 上进行了测试,但可能也适用于其他 SQL 数据库。

注意:如果您正在复制包含您的工作表的数据库,请确保使用 MIXED 或 ROW 基于的复制(基于 STATEMENT 的复制将生成大量警告,因为后端使用带有 WHERE 语句的 UPDATE 查询来锁定工作)。

安装

您可以通过 composer 安装 Emphloyer-PDO:

composer require mkrmr/employer-pdo

要使用 Employer-PDO,您需要安装 UUID pecl 扩展

用法

要使用 PDO 扩展,请在配置文件中将它指定为后端,如下所示

$pipelineBackend = new \Emphloyer\Pdo\PipelineBackend("mysql:dbname=emphloyer_example;host=localhost", "user", "password");

如果您想为您的作业使用特定的表名,可以将其传递给构造函数(默认为 emphloyer_jobs)

$pdoAttributes = [];
$pipelineBackend = new \Emphloyer\Pdo\PipelineBackend("mysql:dbname=emphloyer_example;host=localhost", "user", "password", $pdoAttributes, "emphloyer_jobs");

您还需要创建数据库表,在 MySQL 数据库中,您将创建表如下

CREATE table emphloyer_jobs (
   uuid VARCHAR(36) PRIMARY KEY, 
   created_at TIMESTAMP, 
   run_from TIMESTAMP NULL DEFAULT NULL, 
   locked_at TIMESTAMP NULL DEFAULT NULL, 
   lock_uuid VARCHAR(36) UNIQUE, 
   status VARCHAR(20), 
   class_name VARCHAR(255), 
   type VARCHAR(100),
   attributes TEXT
);

如果您想同时使用调度器和管道,需要在配置文件中添加以下内容

$schedulerBackend = new \Emphloyer\Pdo\SchedulerBackend("mysql:dbname=emphloyer_example;host=localhost", "user", "password");

如果您想为您的作业使用特定的表名,可以将其传递给构造函数(默认为 emphloyer_scheduled_jobs)

$pdoAttributes = [];
$schedulerBackend = new \Emphloyer\Pdo\SchedulerBackend("mysql:dbname=emphloyer_example;host=localhost", "user", "password", $pdoAttributes, "emphloyer_scheduled_jobs");

您还需要创建数据库表,在 MySQL 数据库中,您将创建表如下

CREATE table emphloyer_scheduled_jobs (
   id INT AUTO_INCREMENT,
   uuid VARCHAR(36) UNIQUE, 
   created_at TIMESTAMP, 
   locked_at TIMESTAMP NULL DEFAULT NULL, 
   lock_uuid VARCHAR(36), 
   class_name VARCHAR(255), 
   attributes TEXT, 
   minute TINYINT(1) DEFAULT NULL, 
   hour TINYINT(1) DEFAULT NULL, 
   monthday TINYINT(1) DEFAULT NULL,
   month TINYINT(1) DEFAULT NULL,
   weekday TINYINT(1) DEFAULT NULL,
   PRIMARY KEY (id)
);

贡献

  1. 分叉它
  2. 创建您的功能分支(git checkout -b my-new-feature
  3. 进行更改,请尽量遵守 Doctrine 编码标准(phpcs 配置已包括)
  4. 提交您的更改(git commit -am 'Add some feature'
  5. 推送到分支(git push origin my-new-feature
  6. 在 GitHub 上创建一个新的拉取请求