"""
队列启动入口：读取 Config 并以 exec 方式启动 Dramatiq CLI。
开发与生产均使用该单一角色入口，由外层脚本/编排并行管理。
"""

import os

from jingrow.config import Config
from jingrow.utils.path import get_apps_path


def main() -> None:
    processes = int(getattr(Config, "worker_processes", 1))
    threads = int(getattr(Config, "worker_threads", 1))

    args = [
        "dramatiq",
        "jingrow.services.queue",
        "--processes",
        str(processes),
        "--threads",
        str(threads),
    ]
    # 仅从 Config.watch 控制是否启用 watch，目录固定为 apps 根目录
    if bool(getattr(Config, "watch", False)):
        args.extend(["--watch", str(get_apps_path())])
    os.execvp("dramatiq", args)


if __name__ == "__main__":
    main()


