如何为多个用户提供连续 运行 python 脚本(社交媒体机器人)

How to serve a continuously running python script to multiple users (Social Media Bot)

希望你们都度过了愉快的一天。所以我正在使用 Python 进行一个项目。该脚本的工作是通过 http 请求自动执行社交媒体平台上的操作和任务。截至目前,此脚本的一个实例访问一个用户帐户。现在,我想创建一个网站,让用户可以在其中注册、向社交媒体平台输入他们的凭据和 运行 此脚本的一个实例来执行自动化任务。每次新用户注册时,我都考虑过为这个脚本创建一个新进程,但这似乎效率不高。另外虽然关于使用线程,但似乎也不合理。特别是如果有 10,000 个用户注册。做这个的最好方式是什么?我该如何扩展?提前谢谢大家了。

您运行正在执行的任务的性质是什么?

这些任务只是 运行 在一天中的预定时间或每 X 分钟进行一次的工作吗?为此,您可以让您的 Web 应用程序注册 cronjobs 或类似的,并且每个 cronjob 都可以生成一个脚本实例,我假设它是 short-运行ning,以便一次一个用户执行自动化任务.如果脚本的确切时间无关紧要,那么您可以 运行 整天分散执行这些脚本,如果需要,可以在不同的机器上执行。

上述方法可能无法很好地扩展到 10,000 个用户,您将需要更强大的东西,特别是如果脚本需要 运行 连续(例如,您正在从 Facebook 轮询一些数据并且需要对其变化做出反应)。如果每个用户的通信量很大,那么您可以考虑使用生产者-消费者模型,其中一堆生产者脚本(运行 连续)向全局队列发出工作请求,一堆消费者脚本轮询和执行。您还可以在多台机器上对此类消费者和生产者进行负载平衡。

当然,您肯定希望通过在多线程或进程上执行这项工作来从机器的额外核心中挤出一些并行性。您可以在 Python 中使用多处理模块轻松完成此操作。