mkrmr / emphloyer-pdo
Emphloyer 的 PDO 后端
v0.6.0
2019-05-09 15:45 UTC
Requires
- ext-pdo: *
- mkrmr/emphloyer: 0.6.*
- ramsey/uuid: ^3.8
Requires (Dev)
- ext-pdo_mysql: *
- doctrine/coding-standard: ^6.0
- phpunit/phpunit: ^8
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) );
贡献
- 分叉它
- 创建您的功能分支(
git checkout -b my-new-feature
) - 进行更改,请尽量遵守 Doctrine 编码标准(phpcs 配置已包括)
- 提交您的更改(
git commit -am 'Add some feature'
) - 推送到分支(
git push origin my-new-feature
) - 在 GitHub 上创建一个新的拉取请求