leadguru-jobs 0.701.0__tar.gz → 0.703.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/PKG-INFO +1 -1
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/env.py +3 -1
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/chat_history.py +2 -6
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +6 -4
- leadguru_jobs-0.703.0/lgt_jobs/main.py +53 -0
- leadguru_jobs-0.701.0/lgt_jobs/main.py +0 -47
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/MANIFEST.in +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/README.md +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/requires.txt +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/arrow.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/arrow_blue.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/firework.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/lock.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/logo.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/assets/images/mail.png +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/basejobs.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/analytics.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/bots_killer.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/connect_sources.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/load_slack_people.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/load_slack_users.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/mass_message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/send_code.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/helpers.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/analytics.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/engine.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/enums.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/helpers.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/model.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/base.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/boards/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/boards/board.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/boards/status.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/bots/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/bots/base_bot.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/bots/bot_info.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/bots/dedicated_bot.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/file.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/grouped_messages.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/request.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/scheduled_message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/contacts/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/contacts/contact.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/cloud/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/cloud/file.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/discord/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/discord/user.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/timezone.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/user.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/user_workspace.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/config.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/extended_lead.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/lead.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/notifications/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/notifications/notification.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/notifications/notification_settings.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/people/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/people/people.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/people/profile.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/post/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/post/message.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/post/post.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/templates/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/templates/template.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/feature.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/general_settings.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/reset_password.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/subscription.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/typed_field.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/user.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/user_follow_ups.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/user_page.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/verification.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user_leads/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user_leads/extended_user_lead.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user_leads/user_lead.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/mongo_repository.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/repositories/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/repositories/post/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/repositories/post/posts.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/runner.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/services/__init__.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/services/k8_manager.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/services/web_client.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/simple_job.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/smtp.py +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/templates/new_message.html +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/setup.cfg +0 -0
- {leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/setup.py +0 -0
@@ -2,7 +2,7 @@ import os
|
|
2
2
|
|
3
3
|
project_id = os.environ.get('PROJECT_ID')
|
4
4
|
background_jobs_topic = os.environ.get('BACKGROUND_JOBS_TOPIC')
|
5
|
-
background_jobs_subscriber = os.environ.get('BACKGROUND_JOBS_SUBSCRIBER')
|
5
|
+
background_jobs_subscriber = os.environ.get('BACKGROUND_JOBS_SUBSCRIBER', 'subscriber')
|
6
6
|
mongo_connection_string = os.environ.get('MONGO_CONNECTION_STRING')
|
7
7
|
smtp_host = os.environ.get('SMTP_HOST')
|
8
8
|
smtp_login = os.environ.get('SMTP_LOGIN')
|
@@ -14,3 +14,5 @@ service_account_password = os.environ.get('SERVICE_ACCOUNT_PASSWORD')
|
|
14
14
|
v2_server_host = os.environ.get('V2_SERVER_HOST')
|
15
15
|
v3_server_host = os.environ.get('V3_SERVER_HOST')
|
16
16
|
v1_server_host = os.environ.get('V1_SERVER_HOST')
|
17
|
+
max_messages = int(os.environ.get('MAX_MESSAGES', 10))
|
18
|
+
pool_size = int(os.environ.get('POOL_SIZE', 10))
|
@@ -33,9 +33,6 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
33
33
|
|
34
34
|
def exec(self, data: LoadChatHistoryJobData):
|
35
35
|
user = UserMongoRepository().get(data.user_id)
|
36
|
-
if user.subscription_expired_at.replace(tzinfo=UTC) < datetime.now(UTC):
|
37
|
-
log.info(f"[LoadChatHistoryJob]: {user.email} has expired subscription")
|
38
|
-
return
|
39
36
|
bots = DedicatedBotRepository().get_all(only_valid=True, user_id=user.id, source_type=SourceType.SLACK)
|
40
37
|
if not bots:
|
41
38
|
return
|
@@ -47,7 +44,6 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
47
44
|
if not contacts:
|
48
45
|
continue
|
49
46
|
|
50
|
-
log.info(f"[LoadChatHistoryJob]: processing {len(contacts)} contacts for user: {user.email}")
|
51
47
|
for contact in contacts:
|
52
48
|
message = self._update_history(contact=contact, bot=bot)
|
53
49
|
|
@@ -93,7 +89,7 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
93
89
|
|
94
90
|
messages = history.get('messages', [])
|
95
91
|
if not messages:
|
96
|
-
return
|
92
|
+
return
|
97
93
|
|
98
94
|
messages = [ChatMessage.from_slack_response(bot, m, contact.sender_id) for m in messages]
|
99
95
|
new_messages = self._get_new_messages(contact, bot, messages)
|
@@ -106,4 +102,4 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
106
102
|
self.user_leads_repo.update_many_by_sender_id(contact.sender_id, last_action_at=now)
|
107
103
|
return new_messages[-1]
|
108
104
|
|
109
|
-
return
|
105
|
+
return
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/discord_client.py
RENAMED
@@ -14,7 +14,8 @@ class DiscordClient:
|
|
14
14
|
self.token = token
|
15
15
|
self.headers = {"Authorization": self.token}
|
16
16
|
|
17
|
-
def login(self, login: str, password: str, captcha_key: str = None, rqtoken: str = None
|
17
|
+
def login(self, login: str, password: str, captcha_key: str = None, rqtoken: str = None,
|
18
|
+
user_agent: str = None) -> dict:
|
18
19
|
payload = {
|
19
20
|
'login': login,
|
20
21
|
'password': password,
|
@@ -23,9 +24,10 @@ class DiscordClient:
|
|
23
24
|
"gift_code_sku_id": None
|
24
25
|
}
|
25
26
|
cookies = {
|
26
|
-
'
|
27
|
-
|
28
|
-
|
27
|
+
'User-Agent': user_agent
|
28
|
+
}
|
29
|
+
if captcha_key:
|
30
|
+
cookies = cookies | {'X-Captcha-Key': captcha_key,'X-Captcha-Rqtoken': rqtoken}
|
29
31
|
response = requests.post(f"{self.base_url}{self.discord_api_version}{DiscordMethods.LOGIN.value}", json=payload, cookies=cookies)
|
30
32
|
if response.status_code == 400 or response.status_code == 200:
|
31
33
|
return response.json()
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import json
|
2
|
+
import traceback
|
3
|
+
|
4
|
+
from concurrent.futures import ThreadPoolExecutor
|
5
|
+
|
6
|
+
from lgt_common.pubsub.pubsubfactory import PubSubFactory
|
7
|
+
import logging as log
|
8
|
+
from lgt_jobs.env import project_id, background_jobs_topic, background_jobs_subscriber
|
9
|
+
from lgt_jobs.runner import BackgroundJobRunner
|
10
|
+
from lgt_jobs import jobs_map, env
|
11
|
+
import google.cloud.logging
|
12
|
+
from google.cloud.pubsub_v1 import SubscriberClient
|
13
|
+
from google.cloud.pubsub_v1.types import FlowControl
|
14
|
+
from google.cloud.pubsub_v1.subscriber.scheduler import ThreadScheduler
|
15
|
+
|
16
|
+
|
17
|
+
def callback(message):
|
18
|
+
try:
|
19
|
+
data = json.loads(message.data)
|
20
|
+
log.info(f"[JOB]: {data} [START]")
|
21
|
+
BackgroundJobRunner.run(jobs_map=jobs_map, data=data)
|
22
|
+
log.info(f"[JOB]: {data} [FINISHED]")
|
23
|
+
except Exception as exception:
|
24
|
+
log.error(f"[ERROR][JOB]: {message.data} [ERROR] {traceback.format_exception(exception)} ")
|
25
|
+
traceback.print_exception(exception)
|
26
|
+
finally:
|
27
|
+
# accept message any way
|
28
|
+
message.ack()
|
29
|
+
|
30
|
+
|
31
|
+
if __name__ == '__main__':
|
32
|
+
client = google.cloud.logging.Client()
|
33
|
+
client.setup_logging()
|
34
|
+
factory = PubSubFactory(project_id)
|
35
|
+
factory.create_topic_if_doesnt_exist(background_jobs_topic)
|
36
|
+
factory.create_subscription_if_doesnt_exist(background_jobs_subscriber, background_jobs_topic, 600)
|
37
|
+
subscription_path = factory.get_subscription_path(background_jobs_subscriber, background_jobs_topic)
|
38
|
+
# Launching a subscription
|
39
|
+
future = SubscriberClient().subscribe(
|
40
|
+
subscription_path,
|
41
|
+
callback=callback,
|
42
|
+
flow_control=FlowControl(max_messages=env.max_messages),
|
43
|
+
scheduler=ThreadScheduler(executor=ThreadPoolExecutor(max_workers=env.pool_size))
|
44
|
+
)
|
45
|
+
|
46
|
+
log.info(f"Subscription to {subscription_path} started. We are waiting for a message..\n")
|
47
|
+
|
48
|
+
try:
|
49
|
+
future.result() # Block the current thread until an exception occurs
|
50
|
+
except Exception as exception:
|
51
|
+
log.error(f"[ERROR][SUBSCRIBER]: {traceback.format_exception(exception)}")
|
52
|
+
traceback.print_exception(exception)
|
53
|
+
future.cancel()
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import json
|
2
|
-
import sys
|
3
|
-
import threading
|
4
|
-
import time
|
5
|
-
from lgt_common.pubsub.pubsubfactory import PubSubFactory
|
6
|
-
import logging as log
|
7
|
-
from lgt_jobs.env import project_id, background_jobs_topic, background_jobs_subscriber
|
8
|
-
from lgt_jobs.runner import BackgroundJobRunner
|
9
|
-
from lgt_jobs import jobs_map
|
10
|
-
import google.cloud.logging
|
11
|
-
|
12
|
-
lock = threading.Lock()
|
13
|
-
|
14
|
-
|
15
|
-
def run_background_job(data):
|
16
|
-
try:
|
17
|
-
log.info(f"[JOB]: {data} [START]")
|
18
|
-
BackgroundJobRunner.run(jobs_map=jobs_map, data=data)
|
19
|
-
log.info(f"[JOB]: {data} [FINISHED]")
|
20
|
-
except Exception:
|
21
|
-
raise
|
22
|
-
|
23
|
-
|
24
|
-
def run_background_job_with_lock(message):
|
25
|
-
try:
|
26
|
-
data = json.loads(message.data)
|
27
|
-
with lock:
|
28
|
-
run_background_job(data)
|
29
|
-
except:
|
30
|
-
import traceback
|
31
|
-
log.error(f"[ERROR][JOB]: {message.data} [ERROR] {traceback.format_exception(*sys.exc_info())} ")
|
32
|
-
traceback.print_exception(*sys.exc_info())
|
33
|
-
finally:
|
34
|
-
# accept message any way
|
35
|
-
message.ack()
|
36
|
-
|
37
|
-
|
38
|
-
if __name__ == '__main__':
|
39
|
-
client = google.cloud.logging.Client()
|
40
|
-
client.setup_logging()
|
41
|
-
factory = PubSubFactory(project_id)
|
42
|
-
factory.create_topic_if_doesnt_exist(background_jobs_topic)
|
43
|
-
factory.create_subscription_if_doesnt_exist(background_jobs_subscriber, background_jobs_topic, 600)
|
44
|
-
bot_subscription_path = factory.get_subscription_path(background_jobs_subscriber, background_jobs_topic)
|
45
|
-
factory.subscriber.subscribe(bot_subscription_path, callback=run_background_job_with_lock)
|
46
|
-
while True:
|
47
|
-
time.sleep(1)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/discord_client/methods.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/__init__.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/slack_client.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_common/slack_client/web_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/bots/dedicated_bot.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/grouped_messages.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/chat/scheduled_message.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/contacts/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/contacts/contact.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/cloud/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/cloud/file.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/discord/user.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/timezone.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/slack/user.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/external/user_workspace.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/leads/extended_lead.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/notifications/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/templates/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/templates/template.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/general_settings.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/reset_password.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/subscription.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/typed_field.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/user_follow_ups.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user/verification.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user_leads/__init__.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/models/user_leads/user_lead.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/repositories/post/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.701.0 → leadguru_jobs-0.703.0}/lgt_jobs/lgt_data/repositories/post/posts.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|