首先,我对使用gitlab时通过Web应用程序管理用户和项目的强大解决方案感到非常兴奋。
我完成了安装并将我的smpt设置添加到文件config / production.rb:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'myserver.com',
:port => 25,
:domain => 'gitlab.adomain.com',
:authentication => :plain,
:user_name => 'gitlab@myserver.com',
:password => '',
:enable_starttls_auto => true
}
另外,我更改了文件config / gitlab.yml:
email:
from: account@myserver.com
…
检查SMTP设置并与其他应用程序一起正常运行。我重新启动了gitlab-server,期望在将用户添加到项目时发送通知,或者即使提交传播到远程而不使用自制挂钩。但他们不是。
这是我的网络界面的输出:
gitserver:3254 on mailer at 2 minutes ago
Class
Notify
Arguments
"project_access_granted_email"
31
Exception
Net::SMTPAuthenticationError
Error
502 Command "AUTH PLAIN <tokenid>" not implemented
这是我的问题:
在我的resque概述中,有一个名为mailer的队列,其中有1个活动(邮件)作业无法完成。下面是一个没有工人正在工作的信息。我该如何处理?
我想实现post-receive hooks来发送邮件,如果gitlab结果无法管理它。如何配置我的后缀?
答案 0 :(得分:0)
这取决于您的GitLab版本,但最新的版本似乎不适用于Resque工作人员(包括resque mailer):
见issue 2472:
# bundle exec rake environment resque:work QUEUE=post_receive,mailer,system_hook RAILS_ENV=production PIDFILE=tmp/pids/resque_worker.pid
Starting worker git1-0:7710:post_receive,mailer,system_hook
Registered signals
Running before_first_fork hooks with [#<Worker git1-0:7710:post_receive,mailer,system_hook>]
#~
如果您的案例中至少有一个进程(管理/发送电子邮件)正在运行,您可以检查这种方式。
由于版本过时,所提到的问题目前有更新redis的决议:
作为root - on stable debian
/etc/init.d/redis-server stop
cd /tmp
wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz
cd redis-2.2.4
make PREFIX=/usr
make install PREFIX=/usr
/etc/init.d/redis-server start
编辑
init.d
脚本并从resque命令中删除PIDFILE=
在resque
的启动命令后添加以下
ps auxww|grep QUEUE=post|head -n1|awk '{print $2}' > $RESQUE_PID
所以创建了
pidfile
- 这解决了“停止”错误
stop/start gitlab
- 推送你的罚款