feat(schedule): enhance schedule tasks with web search and batch generation support

Add enable_web_search and generate_count columns to schedule_tasks table.
Refactor schedule task service to publish generation jobs to RabbitMQ
instead of inline execution, supporting batch dispatch and backpressure
awareness via scheduler process.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 14:20:54 +08:00
parent ce13331e26
commit 6869dc2fa6
4 changed files with 272 additions and 62 deletions
@@ -0,0 +1,16 @@
DROP INDEX IF EXISTS idx_schedule_task_operator;
ALTER TABLE schedule_tasks
DROP CONSTRAINT IF EXISTS chk_schedule_tasks_generate_count;
ALTER TABLE schedule_tasks
DROP COLUMN IF EXISTS generate_count,
DROP COLUMN IF EXISTS enable_web_search,
DROP COLUMN IF EXISTS operator_id;
ALTER TABLE schedule_tasks
ALTER COLUMN target_platform TYPE VARCHAR(50)
USING CASE
WHEN target_platform IS NULL THEN NULL
ELSE LEFT(target_platform, 50)
END;
@@ -0,0 +1,15 @@
ALTER TABLE schedule_tasks
ALTER COLUMN target_platform TYPE TEXT;
ALTER TABLE schedule_tasks
ADD COLUMN operator_id BIGINT REFERENCES users(id),
ADD COLUMN enable_web_search BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN generate_count INT NOT NULL DEFAULT 1;
ALTER TABLE schedule_tasks
ADD CONSTRAINT chk_schedule_tasks_generate_count
CHECK (generate_count >= 1 AND generate_count <= 20);
CREATE INDEX idx_schedule_task_operator
ON schedule_tasks(tenant_id, operator_id, created_at DESC)
WHERE deleted_at IS NULL;