<?php

namespace xmvc\libQueue;

use xmvc\interface\IQueue;
use xmvc\QueueJob;

class RabbitMQ implements IQueue
{
    /**
     * 构造
     */
    public function __construct()
    {
        ;
    }
    /**
     * 初始化
     *
     * @param string $tubeName 管道名称
     * @param boolean $persist 是否持久化(将入库)
     * @param boolean $multiTasking 是否支持多任务消费(将入库)
     */
    public function init(string $tubeName, bool $persist, bool $multiTasking): self
    {
        return $this;
    }
    /**
     * 将任务数据加入队列
     */
    public function put(array $data): self
    {
        return $this;
    }

    /**
     * 获取任务
     *
     * @return QueueJob
     */
    public function reserve(): QueueJob
    {
        return new QueueJob();
    }
    /**
     * 保持活动
     */
    public function touch(QueueJob $job): void
    {
        ;
    }

    /**
     * 删除任务
     */
    public function delete(QueueJob $job): void
    {
        ;
    }

    /** 关闭连接 */
    public function close(): void
    {
        ;
    }

    /**
     * 获取 Job 状态
     */
    public function statsJob(QueueJob $job): mixed
    {
        ;
    }

    /**
     * Job 是否有效
     */
    public function isvalid(QueueJob $job): bool
    {
        return false;
    }

    /**
     * 设置 Job 延迟
     */
    public function delay(QueueJob $job, int $seconds): bool
    {
        return false;
    }

    /**
     * 释放一个任务回到队列中
     */
    public function release(QueueJob $job): void
    {
        ;
    }

    /**
     * 队列状态信息
     *
     * @return array
     */
    public function status(): array
    {
        return [];
    }

    /**
     * 被 SIGTERM 信号中断时的, 服务中断错误信息文本片段
     */
    public function errorMessagePartBySIGTERM(): string
    {
        return '未知,需要调测';
    }
}
