-
Notifications
You must be signed in to change notification settings - Fork 0
/
app-multiprocessing.py
49 lines (34 loc) · 1.37 KB
/
app-multiprocessing.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import sys
import os
sys.path.append(r'./data')
sys.path.append(r'./utils')
sys.path.append(r'./config')
from EmailConfig import send_email
import AnalysisAI as AI
import multiprocessing
import dotenv
dotenv.load_dotenv(dotenv_path=r".\.env")
def analyze_and_send_email(customer):
# ENV
EMAIL_TO = os.getenv("STMP_EMAIL_TO")
customeraname = customer['name']
profile = customer['profile']
email = EMAIL_TO
print(f'Analyzing profile {customeraname}...')
products_file = r'.\data\lista-de-produtos.txt'
print(f'Analyzing recommendations to {customeraname}...')
recommendations = AI.analyze_recommendations_by_profile(profile, products_file)
print(f'Create message to {customeraname}...')
message_to_email = AI.analyze_to_email(customeraname, recommendations)
send_email(email, subject=f"Recommendations for {customeraname} by best friend IA ", body=message_to_email)
print("*"*15)
if __name__ == '__main__':
file_profiles_purchased = r'.\data\lista_de_compras_100_clientes.csv'
profiles = AI.analyze_profiles(file_profiles_purchased)
# Crie uma pool de processos
pool = multiprocessing.Pool(processes=10)
# Mapeie a função analyze_and_send_email para cada cliente na lista
pool.map(analyze_and_send_email, profiles['customers'])
# Feche a pool de processos
pool.close()
pool.join()