v
1.0 requests==2.22.0 For RQ to work, you will need to install Redis on your machine, which can be done using the following commands using wget: Bash Copy the code wget htt is-5.0.5.tar.gz tar x .gz cd redis-5.0.5 make Run Redis in a separate terminal window on the default port with the command src/redis-server, from its installation directory. Getting Started with Redis Queue Let's start with an example of a function that accesses the Mars Rover API and prints the URL associated with an image taken by the rover.
The fact that this function includes making an HTTP request means that it contains phone number philippines some stop code, so it's a very good example of how RQ can be useful. Create a file called mars.pyand add the following code to it: Python Copy the code from random import choice import requests mars_rover_url = photos/api/v1/rovers/curiosity/photos' def get_mars_photo(sol): params = { 'sol': sol, 'api_key': 'DEMO_KEY' } response = requests.get(mars_rover_url, params).json() photos = response['photos'] image = choice(photos)['img_src'] print(image) Run this code by opening a Python shell and entering: Python Copy the code from mars import get_mars_photo get_mars_photo(1000) This will print a URL to a random image taken by the Mars Rover on the 1000th Martian solar day of its journey.
Note that it takes some time for the HTTP request to resolve and for the URL to be printed. Your code must wait for the remote server to respond to your HTTP request and cannot do anything else until it does. Here is a photo printed by my code. Photo of the Mars rover If you pass this function to RQ to be treated as an asynchronous task, the rest of your code will no longer be prevented from running.
To do this, nothing could be easier: just import RQ, create a queue and put the function in it. To do this, we will place the following code in a file named print_mars_photos.py : Python Copy the code from redis import Redis from rq import Queue from mars import get_mars_photo q = Queue(connection=Redis()) for i in range(10): q.enqueue(get_mars_photo, 990 + i) For this code to work, you will need to run an RQ worker in the background in another terminal window dedicated to processing tasks.
The fact that this function includes
-
- Posts: 9
- Joined: Sun Dec 22, 2024 4:43 am