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