Gmail の連絡先をインポートしていますが、膨大な数の連絡先をデータベースに保存するのに時間がかかるユーザーがいます。in delay ジョブを使用してバックグラウンドで非同期に実行する方法。delay_job gemを使用しています
ここに私が書いたコードがあります
token = Google::Authorization.exchange_singular_use_for_session_token(params[:token])
unless token == false
@contacts = Google::Contact.all(token)
@contacts.each do |contact|
next if contact.email.nil?
c = {
:user_id => current_user.id,
:source => 'gmail',
:name => contact.name,
:email => contact.email
}
c = Contact.find_or_initialize_by_email(c[:email])
c.update_attributes(c)
end
end