{"id":1868,"date":"2018-04-08T02:06:32","date_gmt":"2018-04-08T00:06:32","guid":{"rendered":"https:\/\/vielhuber.de\/?p=1868"},"modified":"2020-10-13T00:35:23","modified_gmt":"2020-10-12T22:35:23","slug":"laravel-queues-auf-localhost","status":"publish","type":"post","link":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/","title":{"rendered":"Laravel Queues auf localhost"},"content":{"rendered":"<p>Im PHP-Framework <a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel<\/a> innerhalb von Produktivumgebungen sorgen Worker wie <a href=\"https:\/\/github.com\/Supervisor\/supervisor\" target=\"_blank\" rel=\"noopener noreferrer\">Supervisor<\/a> daf\u00fcr, dass die in beispielsweise <a href=\"https:\/\/redis.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Redis<\/a> abgespeicherten Jobs abgearbeitet werden. Will man davon auf localhost g\u00e4nzlich unabh\u00e4ngig sein, nutzt man entweder den <a href=\"https:\/\/laravel.com\/docs\/5.6\/queues#introduction\" target=\"_blank\" rel=\"noopener noreferrer\">sync<\/a>-Treiber, um die Jobs immer sofort auszuf\u00fchren. Das hat den Nachteil, dass der aktuelle PHP-Prozess geblockt ist und der Request h\u00e4ngt, bis der Job abgearbeitet wurde.<\/p>\n<p><!--more--><\/p>\n<p>Besser ist es, eine weitere PHP-Instanz aufzurufen, die einen einmaligen Worker-Durchlauf initiiert. Die nachfolgende\u00a0Implementierung k\u00fcmmert sich dabei auch um Windows\/Mac\/Linux-Unterschiede. Wir definieren zun\u00e4chst auf gew\u00f6hnlichem Wege einen Job:<\/p>\n<p class=\"githubgist\" data-gist-file=\"ExampleQueue.php\">e24ced88a284d02f2ab5c64bb5905fce<\/p>\n<p>Anschlie\u00dfend erstellen wir einen allgemeinen Helper, der sich um die Ausf\u00fchrung k\u00fcmmert:<\/p>\n<p class=\"githubgist\" data-gist-file=\"JobHelper.php\">e24ced88a284d02f2ab5c64bb5905fce<\/p>\n<p>Schlie\u00dflich rufen wir in einem Controller diese Funktion auf:<\/p>\n<p class=\"githubgist\" data-gist-file=\"ExampleController.php\">e24ced88a284d02f2ab5c64bb5905fce<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs abgearbeitet werden. Will man davon auf localhost g\u00e4nzlich unabh\u00e4ngig sein, nutzt man entweder den sync-Treiber, um die Jobs immer sofort auszuf\u00fchren. Das hat den Nachteil, dass der aktuelle PHP-Prozess geblockt ist und der Request h\u00e4ngt, bis der [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"gtbabel_prevent_lngs":"","gtbabel_alt_lng":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-1868","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-blog"},"acf":[],"yoast_head":"<title>Laravel Queues auf localhost &#060; Vielhuber David<\/title>\n<meta name=\"description\" content=\"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel Queues auf localhost &#060; Vielhuber David\" \/>\n<meta property=\"og:description\" content=\"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/\" \/>\n<meta property=\"og:site_name\" content=\"Vielhuber David\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-08T00:06:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-12T22:35:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"552\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:site\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"David\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/\"},\"author\":{\"name\":\"David\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"headline\":\"Laravel Queues auf localhost\",\"datePublished\":\"2018-04-08T00:06:32+00:00\",\"dateModified\":\"2020-10-12T22:35:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/\"},\"wordCount\":153,\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"articleSection\":[\"Blog\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/\",\"name\":\"Laravel Queues auf localhost &#060; Vielhuber David\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\"},\"datePublished\":\"2018-04-08T00:06:32+00:00\",\"dateModified\":\"2020-10-12T22:35:23+00:00\",\"description\":\"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/laravel-queues-auf-localhost\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vielhuber.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Queues auf localhost\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/\",\"name\":\"Vielhuber David\",\"description\":\"Full-Stack Developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vielhuber.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\",\"name\":\"David\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"contentUrl\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"width\":700,\"height\":552,\"caption\":\"David\"},\"logo\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/vielhuber\"]}]}<\/script>","yoast_head_json":{"title":"Laravel Queues auf localhost &#060; Vielhuber David","description":"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs","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:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/","og_locale":"de_DE","og_type":"article","og_title":"Laravel Queues auf localhost &#060; Vielhuber David","og_description":"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs","og_url":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/","og_site_name":"Vielhuber David","article_published_time":"2018-04-08T00:06:32+00:00","article_modified_time":"2020-10-12T22:35:23+00:00","og_image":[{"width":700,"height":552,"url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","type":"image\/jpeg"}],"author":"David","twitter_card":"summary_large_image","twitter_creator":"@vielhuber","twitter_site":"@vielhuber","twitter_misc":{"Verfasst von":"David","Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/#article","isPartOf":{"@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/"},"author":{"name":"David","@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"headline":"Laravel Queues auf localhost","datePublished":"2018-04-08T00:06:32+00:00","dateModified":"2020-10-12T22:35:23+00:00","mainEntityOfPage":{"@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/"},"wordCount":153,"publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"articleSection":["Blog"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/","url":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/","name":"Laravel Queues auf localhost &#060; Vielhuber David","isPartOf":{"@id":"https:\/\/vielhuber.de\/#website"},"datePublished":"2018-04-08T00:06:32+00:00","dateModified":"2020-10-12T22:35:23+00:00","description":"Im PHP-Framework Laravel innerhalb von Produktivumgebungen sorgen Worker wie Supervisor daf\u00fcr, dass die in beispielsweise Redis abgespeicherten Jobs","breadcrumb":{"@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vielhuber.de\/blog\/laravel-queues-auf-localhost\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vielhuber.de\/"},{"@type":"ListItem","position":2,"name":"Laravel Queues auf localhost"}]},{"@type":"WebSite","@id":"https:\/\/vielhuber.de\/#website","url":"https:\/\/vielhuber.de\/","name":"Vielhuber David","description":"Full-Stack Developer","publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vielhuber.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef","name":"David","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","contentUrl":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","width":700,"height":552,"caption":"David"},"logo":{"@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg"},"sameAs":["https:\/\/x.com\/vielhuber"]}]}},"_links":{"self":[{"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/posts\/1868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/comments?post=1868"}],"version-history":[{"count":11,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/posts\/1868\/revisions"}],"predecessor-version":[{"id":2787,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/posts\/1868\/revisions\/2787"}],"wp:attachment":[{"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/media?parent=1868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/categories?post=1868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vielhuber.de\/haw\/wp-json\/wp\/v2\/tags?post=1868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}