Import upstream v0.16.22, stripped
Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f Enterprise-only files removed or emptied: 63 Enterprise-only snippets removed: 117 in 50 files Dangling module declarations removed: 5 Cargo edits turning enterprise off: 14 Verification: clean Enterprise feature gates left for rebuilt features: 19 in 18 files Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import imaplib
|
||||
import socket
|
||||
import time
|
||||
import threading
|
||||
from email.message import Message
|
||||
from email.utils import formatdate
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
def append_message(thread_id, start, end):
|
||||
conn = imaplib.IMAP4('localhost')
|
||||
conn.login('john', '12345')
|
||||
conn.socket().setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
|
||||
start_time = time.time()
|
||||
|
||||
base_date = datetime(2000, 1, 1)
|
||||
|
||||
for n in range(start, end):
|
||||
current_date = base_date + timedelta(hours=n)
|
||||
|
||||
msg = Message()
|
||||
msg['From'] = '[email protected]'
|
||||
msg['To'] = '[email protected]'
|
||||
msg['Message-Id'] = f'unique.message.id.{n}@nowhere'
|
||||
msg['Date'] = formatdate(time.mktime(current_date.timetuple()), localtime=False, usegmt=True)
|
||||
msg['Subject'] = f"This is message #{n}"
|
||||
msg.set_payload('...nothing...')
|
||||
|
||||
response_code, response_details = conn.append('INBOX', '', imaplib.Time2Internaldate(time.mktime(current_date.timetuple())), str(msg).encode('utf-8'))
|
||||
if response_code != 'OK':
|
||||
print(f'Thread {thread_id}: Error while appending message #{n}: {response_code} {response_details}')
|
||||
break
|
||||
if n != 0 and n % 100 == 0:
|
||||
elapsed_time = (time.time() - start_time) * 1000
|
||||
print(f'Thread {thread_id}: Inserting batch {n} took {elapsed_time} ms.', flush=True)
|
||||
start_time = time.time()
|
||||
|
||||
conn.logout()
|
||||
|
||||
num_threads = 5
|
||||
num_messages = 10000
|
||||
messages_per_thread = num_messages // num_threads
|
||||
|
||||
threads = []
|
||||
for i in range(num_threads):
|
||||
start = i * messages_per_thread
|
||||
end = start + messages_per_thread
|
||||
thread = threading.Thread(target=append_message, args=(i, start, end))
|
||||
threads.append(thread)
|
||||
thread.start()
|
||||
|
||||
for thread in threads:
|
||||
thread.join()
|
||||
|
||||
print("All messages appended.")
|
||||
|
||||
Reference in New Issue
Block a user