:return: """ db = TinyDB("data.json") People = Query() target_users = db.search(People.status == 0) email_config = get_email_config() org_config = get_org_config() for user in target_users[:30]: # 这里最多需要150 * 30s来发送完毕 token = str(uuid.uuid1()) content = '感谢您的辛苦付出,请点击链接 <a href="%s?token=' % org_config["frontend_url"] content += token + '">%s?token=' % org_config["frontend_url"] content += token + '</a>领取您的《志愿者证书》\n' content += org_config["name"] content += '\n网址:<a href="{0}">{0}</a>'.format(org_config["website"]) is_successful = send_email( to_email=user['email'], subject='快来领取您的《 %s 志愿者证书》' % org_config["name"], content=content, ) if is_successful: update_status_and_token(email=user['email'], status=1, token=token) slope = email_config["max_second"] - email_config["min_second"] time.sleep(email_config["min_second"] + random.random() * slope) db.close() if __name__ == '__main__': logger.setLevel(logging.DEBUG) SendEmailJob().start()
response.headers['Access-Control-Allow-Headers'] = '*' if request.method == 'OPTIONS': return response return_json = {'code': 1, 'message': '网络异常', 'data': None} response.data = return_msg(return_json) if result == False: return response if action == 'send': send_email_job.start() return_json = { 'code': 0, 'message': 'start send email jobs successfully', 'data': None } response.data = return_msg(return_json) return response if __name__ == '__main__': logger.setLevel(logging.INFO) if not os.path.isdir("images"): os.mkdir("images") host_name = '0.0.0.0' if os.environ.get('host'): host_name = os.environ['host'] if os.environ.get('port'): port_name = int(os.environ['port']) else: port_name = 5000 app.run(host=host_name, port=port_name, debug=True)