2017-04-02 63 views
1

有一种方法可以运行exq作为独立的应用程序:https://github.com/akira/exq#standalone-exq。但问题是我并不真正了解如何使其工作。如果exq作为依赖项添加到我的凤凰应用程序中,那么当我运行我的应用程序时它已经在运行。我可以排队工作,他们正在运行。所以我的问题是如何不将它与我的应用程序一起运行,而是将它作为单独的应用程序运行? (例如,可以在Heroku上的单独工作人员上运行它)。菲尼克斯的独立Exq

+0

我的常用方法认为你只需要从'mix.exs'的应用程序列表中删除':exq'? – Dogbert

+0

当我这样做的时候(当然,不是那样,我试图在'deps'中添加'runtime:false'来exq entry)我不能再入队了。我得到了'**(EXIT)no process:进程没有活动,或者当前没有与给定名称关联的进程,可能是因为它的应用程序没有启动错误 –

回答

3

您是否试图在Phoenix应用程序中运行Exq,并具有排队功能,但是没有在该实例中运行作业?

有两种选择:

1)您可以设定EXQ仅在Enqueuer模式启动。有了这个,你可以把它放在mix.exs中。要做到这一点,改变CONFIGS:

config :exq, 
    ... 
    mode: :enqueuer, 
    ... 

然后,您可以排队用:

Exq.enqueue(Exq.Enqueuer, "default", HelloWorker, [])

2)您可以关闭队列,以便有没有队列正在听:

config :exq, 
    ... 
    queues: [], 
    ... 

您可以使用排队Exq.enqueue(Exq, "default", HelloWorker, [])

+0

真棒,这正是我所需要的。并感谢lib! –