Skip to content

Commit aeade6e

Browse files
committed
redis scheduler
push to channel redis on dependency found. specific usecase.
1 parent e020cb3 commit aeade6e

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

RedisScheduler/RedisScheduler.py

+24-13
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,22 @@ def subscribe_event(self, subscribe_channel='__keyevent@0__:expired', handler='s
9191
pubsub_client.subscribe(subscribe_channel)
9292
for message in pubsub_client.listen():
9393
expired_key = self.get_key(message['data'])
94-
if expired_key.startswith("emails_"):
95-
shadow_key = '_%s' % expired_key
96-
try:
97-
if shadow_key:
98-
expired_key_value = self.redis_client.get(shadow_key)
99-
if expired_key_value:
100-
expired_key_value = json.dumps(expired_key_value.decode('utf-8'))
101-
expired_key_json = json.loads(expired_key_value)
102-
if expired_key_json:
103-
self.send_to_sqs(expired_key_json)
104-
except Exception as e:
105-
print(e)
94+
shadow_key = '_%s' % expired_key
95+
try:
10696
if shadow_key:
107-
self.redis_client.delete(shadow_key)
97+
expired_key_value = self.redis_client.get(shadow_key)
98+
if expired_key_value:
99+
expired_key_value = json.dumps(expired_key_value.decode('utf-8'))
100+
expired_key_json = json.loads(expired_key_value)
101+
if expired_key_json:
102+
if expired_key.startswith("emails_"):
103+
self.send_to_sqs(expired_key_json)
104+
elif expired_key.startswith("checkpoint_dependency_"):
105+
self.send_to_redis_tasks(expired_key_json)
106+
except Exception as e:
107+
print(e)
108+
if shadow_key:
109+
self.redis_client.delete(shadow_key)
108110
except Exception as e:
109111
print(e)
110112

@@ -165,3 +167,12 @@ def send_to_sqs(self, msg):
165167
print(' -- Sent to SQS -- ')
166168
except Exception as e:
167169
print(e)
170+
171+
172+
def send_to_redis_tasks(self, msg):
173+
try:
174+
channel_name = 'dependency_execute'
175+
self.redis_client.publish(channel_name, json.dumps(msg))
176+
print(' -- Sent to SQS -- ')
177+
except Exception as e:
178+
print(e)

RedisScheduler/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__author__ = 'anistark'
2-
__version__ = '2.0.0'
2+
__version__ = '2.1.0'
33
__title__ = 'RedisScheduler'
44

55
# Importing Classes

0 commit comments

Comments
 (0)