[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-d4e29f4f-4ad6-4632-8218-d39d0594747a":3,"$fXHSD9xBX5HeqbnBcAa41A-zQfYwAUi_FqHG6ZwOWn_U":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"d4e29f4f-4ad6-4632-8218-d39d0594747a","azure-storage-queue-py","Azure队列存储Python SDK。用于可靠的消息队列、任务分配和异步处理。","cat_coding_devops","mod_coding","sickn33,coding","---\nname: azure-storage-queue-py\ndescription: Azure Queue Storage SDK for Python. Use for reliable message queuing, task distribution, and asynchronous processing.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure Queue Storage SDK for Python\n\nSimple, cost-effective message queuing for asynchronous communication.\n\n## Installation\n\n```bash\npip install azure-storage-queue azure-identity\n```\n\n## Environment Variables\n\n```bash\nAZURE_STORAGE_ACCOUNT_URL=https:\u002F\u002F\u003Caccount>.queue.core.windows.net\n```\n\n## Authentication\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.storage.queue import QueueServiceClient, QueueClient\n\ncredential = DefaultAzureCredential()\naccount_url = \"https:\u002F\u002F\u003Caccount>.queue.core.windows.net\"\n\n# Service client\nservice_client = QueueServiceClient(account_url=account_url, credential=credential)\n\n# Queue client\nqueue_client = QueueClient(account_url=account_url, queue_name=\"myqueue\", credential=credential)\n```\n\n## Queue Operations\n\n```python\n# Create queue\nservice_client.create_queue(\"myqueue\")\n\n# Get queue client\nqueue_client = service_client.get_queue_client(\"myqueue\")\n\n# Delete queue\nservice_client.delete_queue(\"myqueue\")\n\n# List queues\nfor queue in service_client.list_queues():\n    print(queue.name)\n```\n\n## Send Messages\n\n```python\n# Send message (string)\nqueue_client.send_message(\"Hello, Queue!\")\n\n# Send with options\nqueue_client.send_message(\n    content=\"Delayed message\",\n    visibility_timeout=60,  # Hidden for 60 seconds\n    time_to_live=3600       # Expires in 1 hour\n)\n\n# Send JSON\nimport json\ndata = {\"task\": \"process\", \"id\": 123}\nqueue_client.send_message(json.dumps(data))\n```\n\n## Receive Messages\n\n```python\n# Receive messages (makes them invisible temporarily)\nmessages = queue_client.receive_messages(\n    messages_per_page=10,\n    visibility_timeout=30  # 30 seconds to process\n)\n\nfor message in messages:\n    print(f\"ID: {message.id}\")\n    print(f\"Content: {message.content}\")\n    print(f\"Dequeue count: {message.dequeue_count}\")\n    \n    # Process message...\n    \n    # Delete after processing\n    queue_client.delete_message(message)\n```\n\n## Peek Messages\n\n```python\n# Peek without hiding (doesn't affect visibility)\nmessages = queue_client.peek_messages(max_messages=5)\n\nfor message in messages:\n    print(message.content)\n```\n\n## Update Message\n\n```python\n# Extend visibility or update content\nmessages = queue_client.receive_messages()\nfor message in messages:\n    # Extend timeout (need more time)\n    queue_client.update_message(\n        message,\n        visibility_timeout=60\n    )\n    \n    # Update content and timeout\n    queue_client.update_message(\n        message,\n        content=\"Updated content\",\n        visibility_timeout=60\n    )\n```\n\n## Delete Message\n\n```python\n# Delete after successful processing\nmessages = queue_client.receive_messages()\nfor message in messages:\n    try:\n        # Process...\n        queue_client.delete_message(message)\n    except Exception:\n        # Message becomes visible again after timeout\n        pass\n```\n\n## Clear Queue\n\n```python\n# Delete all messages\nqueue_client.clear_messages()\n```\n\n## Queue Properties\n\n```python\n# Get queue properties\nproperties = queue_client.get_queue_properties()\nprint(f\"Approximate message count: {properties.approximate_message_count}\")\n\n# Set\u002Fget metadata\nqueue_client.set_queue_metadata(metadata={\"environment\": \"production\"})\nproperties = queue_client.get_queue_properties()\nprint(properties.metadata)\n```\n\n## Async Client\n\n```python\nfrom azure.storage.queue.aio import QueueServiceClient, QueueClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def queue_operations():\n    credential = DefaultAzureCredential()\n    \n    async with QueueClient(\n        account_url=\"https:\u002F\u002F\u003Caccount>.queue.core.windows.net\",\n        queue_name=\"myqueue\",\n        credential=credential\n    ) as client:\n        # Send\n        await client.send_message(\"Async message\")\n        \n        # Receive\n        async for message in client.receive_messages():\n            print(message.content)\n            await client.delete_message(message)\n\nimport asyncio\nasyncio.run(queue_operations())\n```\n\n## Base64 Encoding\n\n```python\nfrom azure.storage.queue import QueueClient, BinaryBase64EncodePolicy, BinaryBase64DecodePolicy\n\n# For binary data\nqueue_client = QueueClient(\n    account_url=account_url,\n    queue_name=\"myqueue\",\n    credential=credential,\n    message_encode_policy=BinaryBase64EncodePolicy(),\n    message_decode_policy=BinaryBase64DecodePolicy()\n)\n\n# Send bytes\nqueue_client.send_message(b\"Binary content\")\n```\n\n## Best Practices\n\n1. **Delete messages after processing** to prevent reprocessing\n2. **Set appropriate visibility timeout** based on processing time\n3. **Handle `dequeue_count`** for poison message detection\n4. **Use async client** for high-throughput scenarios\n5. **Use `peek_messages`** for monitoring without affecting queue\n6. **Set `time_to_live`** to prevent stale messages\n7. **Consider Service Bus** for advanced features (sessions, topics)\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,55,1436,"2026-05-16 13:07:58",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"DevOps","devops","mdi-cog-outline","CI\u002FCD、容器化、部署运维",3,162,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"68b9fa38-4fe6-433c-ae41-bb3b806e3443","1.0.0","azure-storage-queue-py.zip",1985,"uploads\u002Fskills\u002Fd4e29f4f-4ad6-4632-8218-d39d0594747a\u002Fazure-storage-queue-py.zip","91439f5000b200179980a680ff00c3e6f21a4fb03733516d6cc92587255bbad5","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":5470}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]