Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e9da346

Browse files
task info added to redis db
1 parent bd30525 commit e9da346

File tree

7 files changed

+58
-9
lines changed

7 files changed

+58
-9
lines changed

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
.idea
2-

‎README.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# python-flask service
2-
save task info in redis using flask api
3-
update task info in redis using flask api
4-
get task info from redis using flask api
5-
delete task info from redis using flask api
2+
-save task info in redis using flask api
3+
-update task info in redis using flask api
4+
-get task info from redis using flask api
5+
-delete task info from redis using flask api
-452 Bytes
Binary file not shown.
-157 Bytes
Binary file not shown.
-1.9 KB
Binary file not shown.

‎task-search/api/rest_api.py‎

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
from flask_restful import Resource
21
import logging as logger
32

3+
from flask_restful import Resource
4+
5+
from redis_service import redis_config
6+
47
logger.basicConfig(level=logger.DEBUG)
58

69

710
class Task(Resource):
811
def __init__(self):
912
self.logger = logger
13+
self.redis_cli = redis_config.RedisCache(logger, 1)
1014

1115
def get(self):
1216
self.logger.info("inside get task")
@@ -28,19 +32,41 @@ def delete(self):
2832
class TaskById(Resource):
2933
def __init__(self):
3034
self.logger = logger
35+
# if task not completed in 3600 seconds then remove from cache
36+
self.task_expire_time = 3600
37+
self.redis_cli = redis_config.RedisCache(logger, 1)
3138

3239
def get(self, task_id):
3340
self.logger.info("inside get task")
34-
return {"message": "task found with task_id: {}".format(task_id)}, 200
41+
task_info = self.redis_cli.get(task_id)
42+
if task_info:
43+
return {"message": "Task found with task_id: {}".format(task_id), "task_info": task_info.decode()}, 200
44+
else:
45+
return {"message": "No task found with task_id: {}".format(task_id)}, 401
3546

3647
def post(self, task_id):
3748
self.logger.info("inside post task")
49+
task_info = self.redis_cli.get(task_id)
50+
if task_info:
51+
return {"message": "Task already exists with task_id: {}".format(task_id)}, 400
52+
task_info = "Task attached to task_id {}".format(task_id)
53+
self.redis_cli.set(task_id, task_info, self.task_expire_time)
3854
return {"message": "task added with task_id: {}".format(task_id)}, 201
3955

4056
def put(self, task_id):
4157
self.logger.info("inside put task")
42-
return {"message": "task updated with task_id: {}".format(task_id)}, 200
58+
task_info = self.redis_cli.get(task_id)
59+
if task_info:
60+
task_info = "Updated task for task_id {}".format(task_id)
61+
self.redis_cli.set(task_id, task_info, self.task_expire_time)
62+
return {"message": "Task updated with task_id: {}".format(task_id)}, 200
63+
else:
64+
return {"message": "No task found with task_id: {}".format(task_id)}, 401
4365

4466
def delete(self, task_id):
4567
self.logger.info("inside delete task")
46-
return {"message": "task deleted with task_id: {}".format(task_id)}, 200
68+
task_info = self.redis_cli.get(task_id)
69+
if not task_info:
70+
return {"message": "No task found with task_id: {}".format(task_id)}, 401
71+
self.redis_cli.delete(task_id)
72+
return {"message": "Task deleted with task_id: {}".format(task_id)}, 200
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import redis
2+
3+
4+
class RedisCache(object):
5+
def __init__(self, logger, db_index):
6+
self.logger = logger
7+
self.redis_client = redis.Redis(host='localhost', port=6379, db=db_index)
8+
self.logger.info(self.redis_client.ping())
9+
10+
def get(self, key):
11+
self.logger.info(f"getting value of {key} from redis cache")
12+
value = self.redis_client.get(key)
13+
self.logger.info(f"value of {key} is {value}")
14+
return value
15+
16+
def set(self, key, value, duration):
17+
self.logger.info(f"saving value of {key} to redis cache")
18+
result = self.redis_client.set(key, value, ex=duration)
19+
return result
20+
21+
def delete(self, key):
22+
self.logger.info(f"deleting value of {key} from redis cache")
23+
result = self.redis_client.delete(key)
24+
return result

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /