{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/scripts\/pipeline\/db_queue.py",
"content": "\"\"\"\nDatabase Queue Mixin\n\nSingle Responsibility: Pipeline queue operations.\n\"\"\"\n\n\nclass QueueMixin:\n \"\"\"Mixin for pipeline queue operations.\n\n Provides:\n - add_to_queue(): Add item to pipeline queue\n - get_pending_queue_items(): Get pending items\n - update_queue_status(): Update item status\n \"\"\"\n\n def add_to_queue(self, file_path: str, action: str = \"process\") -> int:\n \"\"\"Add item to pipeline queue.\n\n Args:\n file_path: File path to process\n action: Action type (process, reprocess, etc.)\n\n Returns:\n Queue item ID\n \"\"\"\n cursor = self.execute(\n \"\"\"INSERT INTO pipeline_queue\n (file_path, action, status, retry_count, created_at)\n VALUES (%s, %s, 'pending', 0, NOW())\"\"\",\n (file_path, action),\n )\n self.commit()\n queue_id = cursor.lastrowid\n cursor.close()\n return queue_id\n\n def get_pending_queue_items(self, limit: int = 10) -> list:\n \"\"\"Get pending items from queue.\n\n Args:\n limit: Maximum number of items to return\n\n Returns:\n List of queue item dicts with id, file_path, action, retry_count\n \"\"\"\n cursor = self.execute(\n \"\"\"SELECT id, file_path, action, retry_count\n FROM pipeline_queue\n WHERE status = 'pending'\n ORDER BY created_at\n LIMIT %s\"\"\",\n (limit,),\n )\n results = cursor.fetchall()\n cursor.close()\n return results\n\n def update_queue_status(\n self,\n queue_id: int,\n status: str,\n error_message: str = None,\n ):\n \"\"\"Update queue item status.\n\n Args:\n queue_id: Queue item ID\n status: New status (pending, processing, completed, failed)\n error_message: Optional error message (increments retry_count on error)\n \"\"\"\n if status == \"error\" and error_message:\n cursor = self.execute(\n \"\"\"UPDATE pipeline_queue\n SET status = %s, error_message = %s,\n retry_count = retry_count + 1, updated_at = NOW()\n WHERE id = %s\"\"\",\n (status, error_message, queue_id),\n )\n else:\n cursor = self.execute(\n \"UPDATE pipeline_queue SET status = %s, updated_at = NOW() WHERE id = %s\",\n (status, queue_id),\n )\n self.commit()\n cursor.close()\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/scripts\/pipeline\/db_queue.py",
"content": "\"\"\"\nDatabase Queue Mixin\n\nSingle Responsibility: Pipeline queue operations.\n\"\"\"\n\n\nclass QueueMixin:\n \"\"\"Mixin for pipeline queue operations.\n\n Provides:\n - add_to_queue(): Add item to pipeline queue\n - get_pending_queue_items(): Get pending items\n - update_queue_status(): Update item status\n \"\"\"\n\n def add_to_queue(self, file_path: str, action: str = \"process\") -> int:\n \"\"\"Add item to pipeline queue.\n\n Args:\n file_path: File path to process\n action: Action type (process, reprocess, etc.)\n\n Returns:\n Queue item ID\n \"\"\"\n cursor = self.execute(\n \"\"\"INSERT INTO pipeline_queue\n (file_path, action, status, retry_count, created_at)\n VALUES (%s, %s, 'pending', 0, NOW())\"\"\",\n (file_path, action),\n )\n self.commit()\n queue_id = cursor.lastrowid\n cursor.close()\n return queue_id\n\n def get_pending_queue_items(self, limit: int = 10) -> list:\n \"\"\"Get pending items from queue.\n\n Args:\n limit: Maximum number of items to return\n\n Returns:\n List of queue item dicts with id, file_path, action, retry_count\n \"\"\"\n cursor = self.execute(\n \"\"\"SELECT id, file_path, action, retry_count\n FROM pipeline_queue\n WHERE status = 'pending'\n ORDER BY created_at\n LIMIT %s\"\"\",\n (limit,),\n )\n results = cursor.fetchall()\n cursor.close()\n return results\n\n def update_queue_status(\n self,\n queue_id: int,\n status: str,\n error_message: str = None,\n ):\n \"\"\"Update queue item status.\n\n Args:\n queue_id: Queue item ID\n status: New status (pending, processing, completed, failed)\n error_message: Optional error message (increments retry_count on error)\n \"\"\"\n if status == \"error\" and error_message:\n cursor = self.execute(\n \"\"\"UPDATE pipeline_queue\n SET status = %s, error_message = %s,\n retry_count = retry_count + 1, updated_at = NOW()\n WHERE id = %s\"\"\",\n (status, error_message, queue_id),\n )\n else:\n cursor = self.execute(\n \"UPDATE pipeline_queue SET status = %s, updated_at = NOW() WHERE id = %s\",\n (status, queue_id),\n )\n self.commit()\n cursor.close()\n",
"structuredPatch": [],
"originalFile": null
}
}