Code: Select all
rq worker --url task_queue
Code: Select all
AttributeError: module 'os' has no attribute 'fork'
Hier ist der relevante Teil meines Codes:< /p>
Code: Select all
import os
from fastapi import FastAPI
from pydantic import BaseModel
from redis import Redis
from rq import Queue
from rq.job import Job
from app.helpers.count_helper import count_words_at_url
# initiate a new fastAPI app
app = FastAPI()
# Create a Redis connection
redis_conn = Redis(
host=os.environ.get("REDIS_HOST"),
port=os.environ.get("REDIS_PORT"),
db=os.environ.get("REDIS_DB"),
username=os.environ.get("REDIS_USERNAME"),
password=os.environ.get("REDIS_PASSWORD"),
ssl=False
)
class Task(BaseModel):
url: str
# Create a queue object with the connection
task_queue = Queue("task_queue", connection=redis_conn)
# testing api endpoint
@app.get("/task/{job_id}/status")
def get_task_status(job_id: str):
job = Job.fetch(job_id, connection=redis_conn)
return {
"status": job.get_status(),
"result": job.result
}
# endpoint for the job
@app.post("/task/async")
async def create_task(task: Task):
# Enqueue the job
job_instance = task_queue.enqueue(count_words_at_url, task.url, timeout=300)
return {
"message": "Job enqueued, callback will be made to the specified URL",
"job_id": job_instance.id
}
- Ich habe meine Redis-Verbindungseinstellungen überprüft und sie sind korrekt.
Ich habe versucht, den Worker mit dem üblichen Befehl auszuführen, bin aber auf den oben genannten Fehler gestoßen.
- Warum tritt dieser Fehler unter Windows auf?
- Wie kann ich meinen Worker ändern, um die Verwendung von fork() zu vermeiden oder eine alternative Methode zu verwenden, die mit Windows kompatibel ist?