{"id":5616,"date":"2018-08-22T13:15:27","date_gmt":"2018-08-22T20:15:27","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5616"},"modified":"2025-06-13T22:40:27","modified_gmt":"2025-06-14T05:40:27","slug":"timers-couchbase-functions","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/timers-couchbase-functions\/","title":{"rendered":"Temporizadores nas fun\u00e7\u00f5es do Couchbase"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Temos o prazer de anunciar o suporte de Timers em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/?family=server&amp;product=couchbase-server-developer\">Couchbase 6.0 Beta<\/a> lan\u00e7amento. Essa \u00e9 uma inova\u00e7\u00e3o importante na <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/eventing\/\">Fun\u00e7\u00f5es do Couchbase<\/a> que permite a computa\u00e7\u00e3o ass\u00edncrona em refer\u00eancia a eventos de rel\u00f3gio de parede.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Os temporizadores s\u00e3o constru\u00e7\u00f5es por meio das quais os desenvolvedores podem especificar uma rotina (l\u00f3gica comercial) a ser acionada em um momento futuro.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Exemplos de casos de uso<\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Arquivar um documento antes da expira\u00e7\u00e3o<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Enviar uma notifica\u00e7\u00e3o (SMS ou e-mail) a um cliente 1 hora ap\u00f3s o check-in em um hotel<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Filtrar os h\u00f3spedes que n\u00e3o fizeram o check-in 30 minutos antes da partida do voo<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Avalia\u00e7\u00e3o de risco quase em tempo real para transa\u00e7\u00f5es com cart\u00e3o de cr\u00e9dito<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Verificar se um documento foi alterado em uma janela de tempo especificada desde sua \u00faltima atualiza\u00e7\u00e3o<\/span><\/li>\n<\/ul>\n<div id=\"attachment_5618\" style=\"width: 778px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5618\" class=\"size-medium_large wp-image-5618\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-768x440.png\" alt=\"Timers in Couchbase Functions\" width=\"768\" height=\"440\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-768x440.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-300x172.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-1024x587.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM-1320x757.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/Screen-Shot-2018-08-21-at-1.04.35-PM.png 1324w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><p id=\"caption-attachment-5618\" class=\"wp-caption-text\">Temporizadores nas fun\u00e7\u00f5es do Couchbase<\/p><\/div>\n<h2><span style=\"font-weight: 400\">Sintaxe de temporizadores<\/span><\/h2>\n<p><span style=\"font-weight: 400\">A maneira de criar um cron\u00f4metro \u00e9:<\/span><\/p>\n<p><em><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0createTimer(callback_function, expiry_ts, reference, context_payload)<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400\">onde:<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>callback_function<\/strong>Fun\u00e7\u00e3o a ser chamada quando o cron\u00f4metro for executado<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>expira\u00e7\u00e3o_ts<\/strong>Data e hora: registro de data e hora em que a fun\u00e7\u00e3o deve ser executada (objeto Javascript Date)<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>refer\u00eancia<\/strong>: um id\/string de refer\u00eancia exclusivo<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>context_payload<\/strong>Carga \u00fatil adicional que deve ser enviada \u00e0 fun\u00e7\u00e3o de retorno de chamada.<\/span><\/p>\n<p>Observa\u00e7\u00e3o: A combina\u00e7\u00e3o de nome da fun\u00e7\u00e3o, fun\u00e7\u00e3o de retorno de chamada e refer\u00eancia deve ser exclusiva e, se n\u00e3o for, o cron\u00f4metro existente ser\u00e1 substitu\u00eddo. Ou, em outras palavras, para uma determinada fun\u00e7\u00e3o, os temporizadores criados dentro de seu escopo devem ter uma combina\u00e7\u00e3o exclusiva de fun\u00e7\u00e3o de retorno de chamada e refer\u00eancia.<\/p>\n<h2><span style=\"font-weight: 400\">C\u00f3digo de amostra<\/span><\/h2>\n<p><span style=\"font-weight: 400\">O c\u00f3digo a seguir \u00e9 um exemplo de c\u00f3digo que cria um cron\u00f4metro programado para ser executado 5 segundos a partir do momento de sua cria\u00e7\u00e3o.<\/span><\/p>\n<pre class=\"\">function OnUpdate(doc,meta) {\r\n\r\n\u00a0\u00a0\u00a0log('document', doc);\r\n\r\n\u00a0\u00a0\u00a0var expiry = new Date(); \/\/get current time\r\n\r\n\u00a0\u00a0\u00a0expiry.setSeconds(expiry.getSeconds() + 5);\u00a0 \/\/add 5 seconds to it\r\n\r\n\u00a0\u00a0\u00a0var context_payload = {docID : meta.id, random_text : \"arbitrary text\"};\r\n\r\n\u00a0\u00a0\u00a0createTimer(timerCallback, \u00a0expiry, meta.id, context_payload);\r\n\r\n}\r\n\r\nfunction timerCallback(context) {\r\n\r\n\u00a0\u00a0\u00a0log('From timerCallback', context);\r\n\r\n\u00a0\u00a0\u00a0dst_bucket[context.docID] = context.random_text;\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400\">Recursos do cron\u00f4metro<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Embora a constru\u00e7\u00e3o pare\u00e7a extremamente simples e f\u00e1cil de consumir, h\u00e1 muito trabalho pesado que \u00e9 feito pela plataforma para oferecer a sem\u00e2ntica. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Alguns recursos not\u00e1veis incluem:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Processamento distribu\u00eddo em escala: Distribui\u00e7\u00e3o autom\u00e1tica de cron\u00f4metros entre os n\u00f3s, o que permite escalabilidade el\u00e1stica. Isso tamb\u00e9m significa que os cron\u00f4metros n\u00e3o precisam ser executados no mesmo n\u00f3 que realmente criou o cron\u00f4metro. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Pelo menos uma execu\u00e7\u00e3o de cron\u00f4metros, apesar de falhas de n\u00f3s e reequil\u00edbrios de cluster<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Execu\u00e7\u00e3o eventual de cron\u00f4metros no caso de um grande ac\u00famulo de eventos a serem processados<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Comportamentos dos cron\u00f4metros<\/span><\/h2>\n<ul>\n<li><span style=\"font-weight: 400\">As associa\u00e7\u00f5es criadas para a fun\u00e7\u00e3o tamb\u00e9m poder\u00e3o ser acessadas dentro dos temporizadores. Isso mant\u00e9m o c\u00f3digo consistente e leg\u00edvel.<\/span><\/li>\n<li><span style=\"font-weight: 400\">Os temporizadores seguem a mesma sem\u00e2ntica de tempo limite de suas fun\u00e7\u00f5es pai. Portanto, se uma fun\u00e7\u00e3o tiver um tempo limite de execu\u00e7\u00e3o de 60 segundos, cada um dos temporizadores criados a partir da fun\u00e7\u00e3o herdar\u00e1 o mesmo valor de tempo limite de execu\u00e7\u00e3o de 60 segundos.<\/span><\/li>\n<li><span style=\"font-weight: 400\">Os temporizadores n\u00e3o podem ser depurados usando o depurador visual.<\/span><\/li>\n<li><span style=\"font-weight: 400\">As mensagens de log() impressas dos Timers ser\u00e3o capturadas no mesmo log do aplicativo que a Fun\u00e7\u00e3o principal.<\/span><\/li>\n<li><span style=\"font-weight: 400\">Se a fun\u00e7\u00e3o for exclu\u00edda ou n\u00e3o implantada, todos os temporizadores associados tamb\u00e9m ser\u00e3o exclu\u00eddos.<\/span><\/li>\n<li><span style=\"font-weight: 400\">Os temporizadores n\u00e3o s\u00e3o repetidos automaticamente se sua execu\u00e7\u00e3o falhar devido a um erro program\u00e1tico ou de tempo de execu\u00e7\u00e3o. Recomenda-se que o c\u00f3digo seja tratado adequadamente com exce\u00e7\u00f5es (ou seja, encerrado em um bloco try-catch)<\/span><\/li>\n<li><span style=\"font-weight: 400\">As informa\u00e7\u00f5es sobre os temporizadores associados a uma fun\u00e7\u00e3o s\u00e3o armazenadas no compartimento de metadados e, portanto, esse compartimento n\u00e3o deve ser exclu\u00eddo ou liberado, nem as chaves devem ser atualizadas. Recomenda-se que o compartimento de metadados n\u00e3o seja usado por nenhum outro aplicativo.<\/span><\/li>\n<li><span style=\"font-weight: 400\">Como as informa\u00e7\u00f5es do timer s\u00e3o armazenadas no bucket de metadados, se o caso de uso exigir e o n\u00famero de timers no sistema for alto, recomenda-se que a mem\u00f3ria atribu\u00edda ao bucket de metadados tamb\u00e9m seja adequadamente alta.<\/span><\/li>\n<\/ul>\n<p><strong>Recursos relacionados\u00a0<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/?family=server&amp;product=couchbase-server-developer\">Download do Couchbase Server 6.0 Beta<\/a><\/li>\n<li>Saiba mais sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/server\/\">Servidor Couchbase<\/a> e <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/eventing\/\">Eventos<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>We are pleased to announce the support of Timers in Couchbase 6.0 Beta release. This is the an important innovation in Couchbase Functions that enables asynchronous compute in reference to wall-clock events. Timers are constructs by which developers can specify [&hellip;]<\/p>","protected":false},"author":3013,"featured_media":5639,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,1816,2273],"tags":[2272,2226,2133],"ppma_author":[9055],"class_list":["post-5616","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-couchbase-server","category-eventing","tag-6-0","tag-couchbase-functions","tag-functions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Timers in Couchbase Functions - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Timers are constructs by which developers can specify a business logic to be triggered in reference to wall-clock events. Use-cases : Archive documents before expiry, do timed calculations, send notifications at a specific time.\" \/>\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.couchbase.com\/blog\/pt\/timers-couchbase-functions\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Timers in Couchbase Functions\" \/>\n<meta property=\"og:description\" content=\"Timers are constructs by which developers can specify a business logic to be triggered in reference to wall-clock events. Use-cases : Archive documents before expiry, do timed calculations, send notifications at a specific time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/timers-couchbase-functions\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-22T20:15:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:40:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"666\" \/>\n\t<meta property=\"og:image:height\" content=\"336\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Venkat Subramanian, Product Manager\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@venkasub\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Venkat Subramanian, Product Manager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/\"},\"author\":{\"name\":\"Venkat Subramanian, Product Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90\"},\"headline\":\"Timers in Couchbase Functions\",\"datePublished\":\"2018-08-22T20:15:27+00:00\",\"dateModified\":\"2025-06-14T05:40:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/\"},\"wordCount\":577,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg\",\"keywords\":[\"6.0\",\"Couchbase Functions\",\"functions\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Server\",\"Eventing\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/\",\"name\":\"Timers in Couchbase Functions - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg\",\"datePublished\":\"2018-08-22T20:15:27+00:00\",\"dateModified\":\"2025-06-14T05:40:27+00:00\",\"description\":\"Timers are constructs by which developers can specify a business logic to be triggered in reference to wall-clock events. Use-cases : Archive documents before expiry, do timed calculations, send notifications at a specific time.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg\",\"width\":666,\"height\":336,\"caption\":\"Timers Couchbase Eventing Functions\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Timers in Couchbase Functions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90\",\"name\":\"Venkat Subramanian, Product Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8f9acdf95e167a15007b71867fe87a9a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g\",\"caption\":\"Venkat Subramanian, Product Manager\"},\"description\":\"Venkat dabbles in product development and product management and has been developing data\/analytics platforms &amp; products. Significant chunk of his experience has been with Oracle, where he transitioned from being an Engineer in Oracle\u2019s Enterprise Manager team to Product Manager for Oracle's BI\/Analytics suite of products. He has worked in startups in the past helping develop machine-learning\/NLP products and distributed decisioning systems. He lurks around at @venkasub.\",\"sameAs\":[\"https:\/\/x.com\/venkasub\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/venkatcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Timers in Couchbase Functions - The Couchbase Blog","description":"Os temporizadores s\u00e3o constru\u00e7\u00f5es pelas quais os desenvolvedores podem especificar uma l\u00f3gica comercial a ser acionada em refer\u00eancia a eventos de rel\u00f3gio de parede. Casos de uso: arquivar documentos antes da expira\u00e7\u00e3o, fazer c\u00e1lculos cronometrados, enviar notifica\u00e7\u00f5es em um hor\u00e1rio espec\u00edfico.","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.couchbase.com\/blog\/pt\/timers-couchbase-functions\/","og_locale":"pt_BR","og_type":"article","og_title":"Timers in Couchbase Functions","og_description":"Timers are constructs by which developers can specify a business logic to be triggered in reference to wall-clock events. Use-cases : Archive documents before expiry, do timed calculations, send notifications at a specific time.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/timers-couchbase-functions\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-08-22T20:15:27+00:00","article_modified_time":"2025-06-14T05:40:27+00:00","og_image":[{"width":666,"height":336,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg","type":"image\/jpeg"}],"author":"Venkat Subramanian, Product Manager","twitter_card":"summary_large_image","twitter_creator":"@venkasub","twitter_misc":{"Written by":"Venkat Subramanian, Product Manager","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/"},"author":{"name":"Venkat Subramanian, Product Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90"},"headline":"Timers in Couchbase Functions","datePublished":"2018-08-22T20:15:27+00:00","dateModified":"2025-06-14T05:40:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/"},"wordCount":577,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg","keywords":["6.0","Couchbase Functions","functions"],"articleSection":["Couchbase Architecture","Couchbase Server","Eventing"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/","url":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/","name":"Timers in Couchbase Functions - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg","datePublished":"2018-08-22T20:15:27+00:00","dateModified":"2025-06-14T05:40:27+00:00","description":"Os temporizadores s\u00e3o constru\u00e7\u00f5es pelas quais os desenvolvedores podem especificar uma l\u00f3gica comercial a ser acionada em refer\u00eancia a eventos de rel\u00f3gio de parede. Casos de uso: arquivar documentos antes da expira\u00e7\u00e3o, fazer c\u00e1lculos cronometrados, enviar notifica\u00e7\u00f5es em um hor\u00e1rio espec\u00edfico.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/08\/6.0-Timers-Blog-Image.jpeg","width":666,"height":336,"caption":"Timers Couchbase Eventing Functions"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/timers-couchbase-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Timers in Couchbase Functions"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90","name":"Venkat Subramanian, gerente de produtos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8f9acdf95e167a15007b71867fe87a9a","url":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","caption":"Venkat Subramanian, Product Manager"},"description":"Venkat trabalha com desenvolvimento e gerenciamento de produtos e vem desenvolvendo plataformas e produtos de dados\/an\u00e1lise. Uma parte significativa de sua experi\u00eancia foi na Oracle, onde passou de engenheiro da equipe de Enterprise Manager da Oracle a gerente de produtos do conjunto de produtos de BI\/Analytics da Oracle. No passado, ele trabalhou em startups, ajudando a desenvolver produtos de aprendizado de m\u00e1quina\/NLP e sistemas de decis\u00e3o distribu\u00eddos. Ele est\u00e1 sempre por perto em @venkasub.","sameAs":["https:\/\/x.com\/venkasub"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/venkatcouchbase-com\/"}]}},"authors":[{"term_id":9055,"user_id":3013,"is_guest":0,"slug":"venkatcouchbase-com","display_name":"Venkat Subramanian, Product Manager","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","author_category":"","last_name":"Subramanian, Product Manager","first_name":"Venkat","job_title":"","user_url":"","description":"Venkat trabalha com desenvolvimento e gerenciamento de produtos e vem desenvolvendo plataformas e produtos de dados\/an\u00e1lise. Uma parte significativa de sua experi\u00eancia foi na Oracle, onde passou de engenheiro da equipe de Enterprise Manager da Oracle a gerente de produtos do conjunto de produtos de BI\/Analytics da Oracle. No passado, ele trabalhou em startups, ajudando a desenvolver produtos de aprendizado de m\u00e1quina\/NLP e sistemas de decis\u00e3o distribu\u00eddos. Ele est\u00e1 sempre por perto em @venkasub."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/3013"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=5616"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5616\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/5639"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=5616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=5616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=5616"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=5616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}