从其他应用程序导入联系人等数据到我们的应用程序的最佳方法是什么?基本情况是,我们有一个应用程序,其数据来自CRM。因此,我们希望每当一个新用户注册到我们的应用程序时,我们必须开始将用户的数据从CRM导入到我们的应用程序中。
现在这个进程不能是一个阻塞进程,即用户必须能够在没有导入进程干扰的情况下使用应用程序。
当导入完成时,必须通知用户导入完成。
这里要解决的关键部分是注册用户的数量非常高,而且频率很高,要导入的记录的数量至少有几千条。
Cron是一个明确的答案,但如何呢?
您确实可以使用Gearman实现这一点。在这种情况下,您需要创建包含导入逻辑的worker。当用户在系统中注册时,你必须创建一个gearman任务来导入数据。
实际上你将有几个步骤:
- 用户注册
- 创建导入数据的任务(例如GearmanClient::addTask())
- 从队列中读取关于导入完成的通知(你可以使用RabbitMQ或ZeroMQ)
- 显示成功消息给用户
当然,如果您的系统有很多新用户,您需要运行大量的worker。