我希望你们都度过了美好的一天。所以我正在使用Python开发一个项目。该脚本的工作是通过http请求在社交媒体平台上自动执行操作和任务。截至目前,此脚本的一个实例访问一个用户帐户。现在,我想创建一个网站,我可以让用户注册,将他们的凭据输入社交媒体平台并运行此脚本的实例来执行自动化任务。每次新用户注册时,我都考虑过创建这个脚本的新进程,但这似乎并不高效。虽然关于使用线程,但似乎也不合理。特别是如果有10,000个用户注册。做这个的最好方式是什么?我该如何扩展?非常感谢你们。
你正在运行的任务的性质是什么?
这些任务只是在一天中的预定时间或每X分钟运行的作业吗?为此,您可以让您的Web应用程序注册cronjobs或类似的,每个cronjob可以生成您的脚本实例,我认为这是一个短期运行,一次执行一个用户的自动化任务。如果脚本的确切时间无关紧要,那么您可以在一天中分散这些脚本的运行,如果需要的话,可以在单独的机器上分散。
上述方法可能无法很好地扩展到10,000个用户,并且您将需要更强大的功能,特别是如果脚本需要连续运行(例如,您正在从Facebook轮询某些数据并需要对其更改做出反应)。如果每个用户进行大量通信,那么您可以考虑使用生产者 - 消费者模型,其中一堆生产者脚本(持续运行)将工作请求发布到一组消费者脚本轮询和执行的全局队列中。您还可以跨多台计算机对这些使用者和生产者进行负载平衡
当然,您肯定希望通过在多个线程或进程上执行此工作来从机器的额外内核中挤出一些并行性。您可以使用多处理模块在Python中轻松完成此操作。