Skip to content

Commit 8cbc238

Browse files
committed
Fixed multi-threading and Updated new version
1 parent 2e95672 commit 8cbc238

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Change log
22

3+
### 0.0.4
4+
- Fixed threading
5+
36
### 0.0.3
47
- Removed blocking call from topic subscription
5-
- Added TODOs abf FIXMEs
8+
- Added TODOs and FIXMEs
69

710
### 0.0.2
811
- Added filtered exception handling

freeze_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
build_date = date.today().strftime('%Y-%m-%d')
1313

14-
version = '0.0.3'
14+
version = '0.0.4'
1515

1616
with open(version_file_path, 'w+') as version_file:
1717
version_file.write("version = '{}'\n".format(version))

src/python_ms_core/core/queue/queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def send(self, data=None):
2828
if data:
2929
message = QueueMessage.to_dict(data)
3030
with self.provider.client:
31-
sender = self.provider.client.get_queue_sender(queue_name=self.azure.queue_name)
31+
sender = self.provider.client.get_queue_sender(queue_name=self.provider.queue_name)
3232
with sender:
3333
sender.send_messages(self.provider.sender(json.dumps(message)))
3434
self.queue = list()

src/python_ms_core/core/queue/topic.py

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ class Callback:
1111
def __init__(self, fn=None):
1212
self._function_to_call = fn
1313

14-
def messages(self, client):
15-
for message in client:
16-
try:
17-
queue_message = QueueMessage.data_from(str(message))
18-
self._function_to_call(queue_message)
19-
except Exception as e:
20-
print(f'Error: {e}, Invalid message received: {message}')
21-
finally:
22-
client.complete_message(message)
23-
14+
def messages(self, provider, topic, subscription):
15+
with provider.client:
16+
topic_receiver = provider.client.get_subscription_receiver(topic, subscription_name=subscription)
17+
with topic_receiver:
18+
for message in topic_receiver:
19+
try:
20+
queue_message = QueueMessage.data_from(str(message))
21+
self._function_to_call(queue_message)
22+
except Exception as e:
23+
print(f'Error: {e}, Invalid message received: {message}')
24+
finally:
25+
topic_receiver.complete_message(message)
2426

2527
class Topic:
2628
def __init__(self, config=None, topic_name=None):
@@ -37,14 +39,9 @@ def __init__(self, config=None, topic_name=None):
3739
def subscribe(self, subscription=None, callback=None):
3840
if subscription is not None:
3941
cb = Callback(callback)
40-
with self.provider.client:
41-
topic_receiver = self.provider.client.get_subscription_receiver(self.provider.topic,
42-
subscription_name=subscription)
43-
with topic_receiver:
44-
if callback and callable(callback):
45-
thread = threading.Thread(target=cb.messages, args=(topic_receiver,))
46-
thread.start()
47-
time.sleep(5)
42+
thread = threading.Thread(target=cb.messages, args=(self.provider,self.topic, subscription))
43+
thread.start()
44+
time.sleep(5)
4845
else:
4946
logging.error(
5047
f'Unimplemented initialization for core {self.provider.provider}, Subscription name is required!')

0 commit comments

Comments
 (0)