[英]How do I create this loop of sending large email and small email every 1min within a 5min interval
我正在尝试为以下问题制定逻辑。
1. Send a large e-mail (1MB or so) every 1 min for 5mins.
2. Wait for 5 mins
3. Send 5 small e-mails (few 100 bytes) every 1 min for 5mins
4. Then wait for 5 mins and start again 1 repeating the same cycle.
5. Start with 1 again
我创建了一个电子邮件脚本,可以接受1MB和几百个字节的附件,我的困惑是如何创建这样的循环:每5分钟间隔1分钟发送一次大电子邮件和小电子邮件
import time
def email(attachment)
.......
while true:
time.sleep(60) #Delay for 1 minute
email(attachment)
至少有两种方法可以解决此问题。
首先是完全使用python。
def send_mail(large=True):
"""Send 5 emails, 1 minute apart."""
for _ in range(5):
# send an email here, large or small.
if large:
send_large_email()
else:
send_small_email()
wait() # 1 minute
def wait(mins=1):
time.sleep(mins * 60)
def main():
start = time.time()
day = 24 * 60 * 60
while time.time() - start < day:
send_mail()
wait(5) # wait 5 minutes
send_mail(large=False)
wait(5)
这就是您要使用的基本轮廓。
另一种方法是使用cron。 创建两个脚本,一个用于发送小电子邮件,一个用于发送大电子邮件。 设置cron以适当的时间间隔运行这些脚本。
您可以通过许多不同的方式解决此问题,这只是一个示例。 希望能帮助到你。
import time
def send_email(email):
print 'sending %s' % email
def get_large_email():
return 'large'
def get_small_email():
return 'small'
def get_email(size):
if size == 'large':
email_to_send = get_large_email()
elif size == 'small':
email_to_send = get_small_email()
return email_to_send
email_size = 'large'
while True:
for i in range(5):
email_to_send = get_email(email_size)
send_email(email_to_send)
time.sleep(60)
email_size = 'small' if email_size == 'large' else 'large'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.