RQ-Worker-Fehler unter Windows: AttributeError: Modul „OS“ hat kein Attribut „Fork“Python

Python-Programme
Guest
 RQ-Worker-Fehler unter Windows: AttributeError: Modul „OS“ hat kein Attribut „Fork“

Post by Guest »

Ich verwende FastAPI mit Redis und RQ für die Verarbeitung von Hintergrundaufgaben. Wenn ich versuche, den RQ-Worker mit dem folgenden Befehl zu starten:

Code: Select all

rq worker --url  task_queue
Ich erhalte die folgende Fehlermeldung:

Code: Select all

AttributeError: module 'os' has no attribute 'fork'
Ich arbeite auf einem Windows-Computer und habe die erforderlichen Redis-Konfigurationen korrekt eingerichtet.
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
}

Was ich versucht habe:
  • 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.
Fragen:
  • 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post