2

cronジョブレールが実行されるたびにrakeタスクを使用してpdfを生成したい.コンソールでこのコマンドでこのrakeタスクを実行すると、pdfが正常に生成されます

       bundle exec rake auto_invoice_email

私がこのコマンドを与えると

       which wkhtmltopdf

次に、このパス「/usr/bin/wkhtmltopdf」があります

しかし、cronジョブで実行すると、このエラーが発生します

       rake aborted!
       Failed to execute:
       "/usr/bin/wkhtmltopdf" -q        - - 
       Error: PDF could not be generated!
       Tasks: TOP => auto_invoice_email
       (See full trace by running task with --trace)

cron ジョブの wkhtmltopdf のパスを指定する方法と場所

何か助けはありますか?

ここにレーキタスクがあります

 require 'rubygems'
  require 'wicked_pdf'
 require 'erb'
 require 'date'
 task :auto_invoice_email => :environment do
 #$PATH = '/usr/bin/wkhtmltopdf'
  include ApplicationHelper

  users = User.find_subscribers
    unless users.blank?
     users.each do |user|
     @user = user
    content = File.read "#{Rails.root}/app/views/accountings/generate_invoice_pdf_rake.html.erb"
    template = ERB.new(content)
     html_content = template.result(binding)
     pdf= WickedPdf.new.pdf_from_string(html_content, :wkhtmltopdf => '/usr/bin/wkhtmltopdf')
     name = "#{Rails.root}/public/#{user.subscriber.downcase+" "+Time.now.to_s}.pdf"
     File.open(name, 'wb') do |file|
       file << pdf
     end
   end
end

終わり

ありがとう

4

0 に答える 0