{"id":1548,"date":"2015-07-31T04:01:11","date_gmt":"2015-07-31T04:01:11","guid":{"rendered":"https:\/\/dev.railscarma.com\/delayed-job-gem-for-csv\/"},"modified":"2025-12-18T10:35:37","modified_gmt":"2025-12-18T10:35:37","slug":"joyau-de-travail-retarde-pour-csv","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-de-travail-retarde-pour-csv\/","title":{"rendered":"Rails Delayed Job Gem for CSV"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"1548\" class=\"elementor elementor-1548\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-374153eb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"374153eb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-462d04f1\" data-id=\"462d04f1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2fbdaa43 elementor-widget elementor-widget-text-editor\" data-id=\"2fbdaa43\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: justify;\">Il est essentiel de disposer d&#039;un serveur rapide, car les retards de traitement peuvent litt\u00e9ralement tuer les sources de revenus d&#039;une entreprise et frustrer les utilisateurs. La vitesse d&#039;un site Web est le temps r\u00e9el n\u00e9cessaire \u00e0 une page Web pour se charger \u00e0 l&#039;\u00e9cran apr\u00e8s avoir \u00e9t\u00e9 demand\u00e9e par le navigateur. Consid\u00e9rons maintenant un sc\u00e9nario dans lequel vous devez utiliser une \u00e9norme base de donn\u00e9es et envoyer des e-mails \u00e0 une liste plus longue que la Muraille de Chine. Exag\u00e9ration ou non, l&#039;envoi d&#039;e-mails \u00e0 une longue liste de personnes prendra du temps, augmentant le temps de traitement, ce qui ralentira le serveur et ennuyera les utilisateurs.<\/p>\n<p style=\"text-align: justify;\">L&#039;obligation d&#039;effectuer des t\u00e2ches asynchrones sur des applications Web en dehors du cycle de traitement des requ\u00eates HTTP est une n\u00e9cessit\u00e9 pour toute organisation g\u00e9rant des donn\u00e9es volumineuses. Si vous avez des t\u00e2ches qui n\u00e9cessitent beaucoup de donn\u00e9es et doivent \u00eatre trait\u00e9es en arri\u00e8re-plan, l&#039;un des meilleurs moyens de les combattre consiste \u00e0 utiliser <strong>Travail retard\u00e9<\/strong>. Comme son nom l&#039;indique, le &#039;<strong>Travail retard\u00e9<\/strong>&#039; est une gemme Ruby qui peut \u00eatre appliqu\u00e9e pour ex\u00e9cuter certaines t\u00e2ches en arri\u00e8re-plan dans l&#039;environnement Rails. En planifiant les t\u00e2ches avec un calendrier plut\u00f4t que de les ex\u00e9cuter toutes ensemble, la premi\u00e8re est pr\u00e9f\u00e9r\u00e9e en raison d&#039;une utilisation conservatrice des ressources.<\/p>\n<p style=\"text-align: justify;\"><strong>Travail retard\u00e9<\/strong> est particuli\u00e8rement important lorsqu&#039;il s&#039;agit de g\u00e9rer des fichiers CSV dans lesquels vous avez des enregistrements de nature dynamique et dont la taille est \u00e9lev\u00e9e. Il prend beaucoup d&#039;espace RAM et n&#039;accepte pas d&#039;autres requ\u00eates lors de la pr\u00e9paration du fichier CSV. Pour surmonter cela, <strong>Travail retard\u00e9<\/strong> la gemme est utilis\u00e9e. Consultez les codes pour en savoir plus sur la fa\u00e7on dont nous pouvons ajouter cette gemme\u00a0:<\/p>\n\n<h3 style=\"text-align: justify;\"><b>La mani\u00e8re habituelle <\/b><\/h3>\n<blockquote>le t\u00e9l\u00e9chargement def n\u00e9cessite \u00ab\u00a0csv\u00a0\u00bb csv_string = CSV.generate do |csv| csv &lt;&lt; [\u00ab ID \u00bb,\u2026.] @search.each do |site| csv &lt;&lt; [site.id, \u2026\u2026..] end end send_data csv_string, :type =&gt; &#039;text\/csv&#039;, :filename =&gt; &#039;_sites_list.csv&#039;, :disposition =&gt; &#039;attachment&#039; end<\/blockquote>\n<p style=\"text-align: justify;\">Dans le sc\u00e9nario ci-dessus, il existe un grand nombre de colonnes avec plus de 50\u00a0000 enregistrements lorsque cela est demand\u00e9 pour tous les enregistrements (sites), cela sollicite le syst\u00e8me avec une lourde charge.<\/p>\n\n<h3 style=\"text-align: justify;\"><b>La m\u00e9thode des gemmes de travail diff\u00e9r\u00e9<\/b><\/h3>\n<blockquote>\n<p style=\"text-align: justify;\">t\u00e9l\u00e9chargement par d\u00e9finition<\/p>\n<p style=\"text-align: justify;\">ExportCsv.new (@search.to_a.map(&amp;:id), current_user.id).delay.perform<\/p>\n<p style=\"text-align: justify;\">fin<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">Le lien\/bouton pour t\u00e9l\u00e9charger la m\u00e9thode doit \u00eatre un appel AJAX.<\/p>\n<p style=\"text-align: justify;\">La classe personnalis\u00e9e pour les op\u00e9rations de travail retard\u00e9es dans le dossier lib.<\/p>\n\n<blockquote>export_csv.rb class ExportCsv &lt; Struct.new(:site_ids, :user_id) def perform require &quot;csv&quot; User.find(user_id).update_attributes(xls_download: false) Pr\u00e9-ex\u00e9cution de #, en vous assurant. sites = Site.where(id : site_ids) CSV.open(\u201ctmp\/sites_xls\/#{user_id}.csv\u201d, \u201cw+\u201d) do |csv| csv &lt;&lt; [\u00ab ID \u00bb, \u2026..] sites.each do |site| csv &lt;&lt; [site.id, \u2026..] fin fin fin def apr\u00e8s(job) User.find(user_id).update_attributes(xls_download: true) end handle_asynchronously :perform end<\/blockquote>\n<p style=\"text-align: justify;\">Comme nous ne pouvons pas utiliser d&#039;objets de session, un nouvel attribut xls_download a \u00e9t\u00e9 cr\u00e9\u00e9 pour la table des utilisateurs. L&#039;attribut sera d\u00e9fini sur true apr\u00e8s la m\u00e9thode fournie par la t\u00e2che retard\u00e9e, une fois le processus de la m\u00e9thode perform termin\u00e9.<\/p>\n<p style=\"text-align: justify;\">Une fois la pr\u00e9paration du CSV termin\u00e9e, le fichier semble se trouver dans le chemin de l&#039;application, mais comment vous informe-t-il qu&#039;il est pr\u00eat et qu&#039;il a termin\u00e9 le processus d&#039;\u00e9criture au format CSV\u00a0?<\/p>\n\n<blockquote>download.js.erb alert(&#039;Pr\u00e9paration du fichier \u00e0 t\u00e9l\u00e9charger, vous serez averti une fois termin\u00e9\u2026&#039;); timeout(&#039;&lt;%= SOME_DELAY %&gt;&#039;);<\/blockquote>\n<p style=\"text-align: justify;\">Alors, que se cache-t-il dans la fonction de d\u00e9lai d&#039;attente, comment le syst\u00e8me informe-t-il qu&#039;il est pr\u00eat \u00e0 servir le fichier\u00a0?<\/p>\n\n<blockquote>function timeout(time) { setTimeout(function() { $.ajax({ url : &quot;\/controller\/check_if_ready ?&quot;, type : &#039;GET&#039;, dataType : &#039;json&#039;, success : function(response) { if(response. value === &quot;succ\u00e8s&quot;) { var value = confirm(&quot;Fichier pr\u00eat \u00e0 t\u00e9l\u00e9charger ?&quot;); if (value == true) { window.location=&quot;\/controller\/download_csv.csv&quot;; } else if(value = = false) { $.ajax({ url : &quot;\/controller\/remove_file&quot;}) } } else { timeout(&#039;4000&#039;) \/\/ attendre 4 secondes } }, }); }, time); } L&#039;appel AJAX. check_if_ready ? def check_if_ready ? si current_user.set_xls_download ? &amp;&amp; File.exist? (@file_path) render json\u00a0: { valeur\u00a0: &quot;succ\u00e8s&quot; } else render json\u00a0: { valeur\u00a0: nil } end end<\/blockquote>\n<p style=\"text-align: justify;\">Navigation vers diff\u00e9rentes sources.<\/p>\n<p style=\"text-align: justify;\">Il semble que tout va bien, mais que se passe-t-il si l&#039;utilisateur navigue sur diff\u00e9rentes pages.<\/p>\n<p style=\"text-align: justify;\">Appelez la fonction dans la mise en page n\u00e9cessaire.<\/p>\n\n<blockquote>%script \u2013 si session[:download] timeout(&#039;#{DELAY}&#039;);<\/blockquote>\n<p style=\"text-align: justify;\">Utilisez un attribut flag pour effectuer des appels de sondage, une fois le t\u00e9l\u00e9chargement termin\u00e9, vous pouvez revenir \u00e0 nul\/false.<\/p>\n<p style=\"text-align: justify;\">Derniers points<\/p>\n\n<ul style=\"text-align: justify;\">\n \t<li>La valeur du d\u00e9lai peut \u00eatre configur\u00e9e en fonction du nombre d&#039;enregistrements pour r\u00e9duire le nombre d&#039;appels Ajax. Mais lors de la navigation vers diff\u00e9rentes pages, vous souhaiterez peut-\u00eatre \u00e9galement avoir un d\u00e9lai plus court, car l&#039;utilisateur peut faire une autre demande dans ce d\u00e9lai.<\/li>\n \t<li>Supprimez le fichier et r\u00e9initialisez les valeurs apr\u00e8s le t\u00e9l\u00e9chargement.<\/li>\n \t<li>Que se passe-t-il s&#039;il y a une demande de t\u00e9l\u00e9chargement de plusieurs fichiers\u00a0? Vous pouvez le traiter en permettant \u00e0 l&#039;utilisateur de faire une seule demande de t\u00e9l\u00e9chargement \u00e0 la fois.<\/li>\n \t<li>Lors du processus de d\u00e9ploiement de Capistrano, vous devrez peut-\u00eatre red\u00e9marrer le processus de travail retard\u00e9 et vous assurer qu&#039;aucun t\u00e9l\u00e9chargement n&#039;est en cours. S&#039;il n&#039;est pas g\u00e9r\u00e9 \u2013 L&#039;appel Ajax peut entrer en boucle et la requ\u00eate peut \u00eatre sans fin, la valeur du compteur peut \u00eatre utilis\u00e9e pour r\u00e9soudre ce probl\u00e8me et tuer la requ\u00eate.<\/li>\n<\/ul>\n<blockquote>\n<p style=\"text-align: justify;\">Vous voulez en savoir plus sur le fonctionnement de cette gemme et d\u2019autres joyaux\u00a0? Avec des solutions ing\u00e9nieuses, des valeurs commerciales progressistes et une exp\u00e9rience \u00e9prouv\u00e9e,<strong><a href=\"https:\/\/www.railscarma.com\/fr\/\" target=\"_blank\" rel=\"noopener noreferrer\"> RailsCarma<\/a><\/strong> est le mieux adapt\u00e9 pour vous aider avec tous vos besoins de d\u00e9veloppement. Notre processus de d\u00e9veloppement repose en grande partie sur une attention constante aux d\u00e9tails, notamment la qualit\u00e9, le design et l&#039;excellence. Nous transformons vos id\u00e9es en r\u00e9alit\u00e9. Si vous avez des questions, vous pouvez <a href=\"\/fr\/contactez-nous\/\" target=\"_blank\" rel=\"noopener noreferrer\">Contactez-nous<\/a>.<\/p>\n<\/blockquote>\nLire des articles similaires :\n<ul>\n \t<li class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/implementation-de-tinymce-en-ruby-sur-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">Impl\u00e9mentation de TinyMCE dans Ruby on Rails<\/a><\/li>\n \t<li class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/comprendre-le-plugin-de-pipeline-dactifs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Comprendre le plugin Asset Pipeline<\/a><\/li>\n \t<li class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/un-moyen-simple-daugmenter-les-performances-de-votre-application-rails-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Un moyen simple d&#039;augmenter les performances de votre application Rails<\/a><\/li>\n \t<li class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/scaling-applications-multiple-database-connection-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mise \u00e0 l&#039;\u00e9chelle des applications avec plusieurs connexions \u00e0 des bases de donn\u00e9es<\/a><\/li>\n<\/ul>\n<a href=\"\/fr\/contactez-nous\/\">Prenez contact avec nous.<\/a>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6a5d5305 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6a5d5305\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-102b7e9\" data-id=\"102b7e9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-68ffa2d7 elementor-widget elementor-widget-heading\" data-id=\"68ffa2d7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11f86bff elementor-widget elementor-widget-shortcode\" data-id=\"11f86bff\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"ec95fb1fc4\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n        Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"MEILLEURES ID\u00c9ES POUR LE D\u00c9VELOPPEMENT DE RUBY ON RAILS\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>It is essential to have a fast server as the delay in processing can literally kill a business\u2019 revenue stream and frustrate the users. The speed of a website is the actual time it takes for a web page to load on the screen after being requested by the browser. Now consider a scenario where &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Comment construire une plateforme SaaS \u00e9volutive en utilisant Ruby on Rails<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":32017,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[],"class_list":["post-1548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rails Delayed Job Gem for CSV - RailsCarma<\/title>\n<meta name=\"description\" content=\"Delayed Job Gem is a ruby gem which can be applied to execute certain tasks in background process in the Rails environment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-de-travail-retarde-pour-csv\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rails Delayed Job Gem for CSV - RailsCarma\" \/>\n<meta property=\"og:description\" content=\"Delayed Job Gem is a ruby gem which can be applied to execute certain tasks in background process in the Rails environment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-de-travail-retarde-pour-csv\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-31T04:01:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T10:35:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Rails Delayed Job Gem for CSV\",\"datePublished\":\"2015-07-31T04:01:11+00:00\",\"dateModified\":\"2025-12-18T10:35:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/\"},\"wordCount\":945,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg\",\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/\",\"name\":\"Rails Delayed Job Gem for CSV - RailsCarma\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg\",\"datePublished\":\"2015-07-31T04:01:11+00:00\",\"dateModified\":\"2025-12-18T10:35:37+00:00\",\"description\":\"Delayed Job Gem is a ruby gem which can be applied to execute certain tasks in background process in the Rails environment.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rails Delayed Job Gem for CSV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rails Delayed Job Gem for CSV - RailsCarma","description":"Delayed Job Gem est une gemme rubis qui peut \u00eatre appliqu\u00e9e pour ex\u00e9cuter certaines t\u00e2ches en arri\u00e8re-plan dans l&#039;environnement Rails.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-de-travail-retarde-pour-csv\/","og_locale":"fr_FR","og_type":"article","og_title":"Rails Delayed Job Gem for CSV - RailsCarma","og_description":"Delayed Job Gem is a ruby gem which can be applied to execute certain tasks in background process in the Rails environment.","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-de-travail-retarde-pour-csv\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2015-07-31T04:01:11+00:00","article_modified_time":"2025-12-18T10:35:37+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Rails Delayed Job Gem for CSV","datePublished":"2015-07-31T04:01:11+00:00","dateModified":"2025-12-18T10:35:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/"},"wordCount":945,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg","articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/","name":"Rails Delayed Job Gem for CSV - RailsCarma","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg","datePublished":"2015-07-31T04:01:11+00:00","dateModified":"2025-12-18T10:35:37+00:00","description":"Delayed Job Gem est une gemme rubis qui peut \u00eatre appliqu\u00e9e pour ex\u00e9cuter certaines t\u00e2ches en arri\u00e8re-plan dans l&#039;environnement Rails.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/07\/blog_rc_delayed_gem.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/delayed-job-gem-for-csv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Rails Delayed Job Gem for CSV"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/1548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=1548"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/1548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/32017"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=1548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=1548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=1548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}