{"id":19607124,"url":"https://github.com/robocorp/template-extended-producer-consumer","last_synced_at":"2026-02-23T04:02:34.844Z","repository":{"id":154170630,"uuid":"631869059","full_name":"robocorp/template-extended-producer-consumer","owner":"robocorp","description":"Extended Producer-Consumer robot template using Robot Framework","archived":false,"fork":false,"pushed_at":"2024-12-10T09:26:26.000Z","size":46,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-05T03:02:58.609Z","etag":null,"topics":["python","robocorp","robot","robotframework","rpa","rpaframework","template"],"latest_commit_sha":null,"homepage":"https://robocorp.com/docs","language":"RobotFramework","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robocorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-24T08:27:45.000Z","updated_at":"2024-12-10T09:26:30.000Z","dependencies_parsed_at":"2024-04-11T13:45:05.334Z","dependency_job_id":null,"html_url":"https://github.com/robocorp/template-extended-producer-consumer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Ftemplate-extended-producer-consumer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Ftemplate-extended-producer-consumer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Ftemplate-extended-producer-consumer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Ftemplate-extended-producer-consumer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robocorp","download_url":"https://codeload.github.com/robocorp/template-extended-producer-consumer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251196475,"owners_count":21550958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","robocorp","robot","robotframework","rpa","rpaframework","template"],"created_at":"2024-11-11T10:08:59.626Z","updated_at":"2026-02-23T04:02:34.750Z","avatar_url":"https://github.com/robocorp.png","language":"RobotFramework","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Template: Robot Framework - Producer-Consumer Extended\n\nRobot Framework template implementing a Producer-Consumer model using custom libraries\nand resources. This combines two already existing templates, such as the\n**Extended Robot Framework template** and the **Producer-consumer model template**,\ninto one.\n\nIt features the following:\n- Producer-Consumer model: one task produces work and another consumes it.\n- An optional additional third Step which reports the Consumer results.\n- Item-level validation and error handling.\n- Extended robot structure comprising the following:\n  - Custom Python libraries placed in the [*libraries*](./libraries/) directory.\n  - Custom reusable RF resources and variables file placed in\n    [*resources*](./resources/).\n  - Optional (setup) scripts, to be ran before the robot starts, in [*bin*](./bin/).\n    (**rcc** \u0026 Control Room only)\n  - Locally mocked Work Items and environment variables JSON files, to customize the\n    run and simulate the Control Room behavior, in [*devdata*](./devdata/).\n\n## Use-case\n\nThis robot template is particularly useful for complex scenarios where you need to\nsplit bigger robots into smaller maintainable files and structure the code, resources\nand any additional library or executable script accordingly.\n\nBeside its extended modular structure, it provides the boilerplate to work with Work\nItems locally, while leveraging their parallelization support and retry mechanism right\nin Control Room.\n\n## Tasks\n\nThe robot Process functionality is split into 2 mandatory Steps and an optional 3rd one\nfor reporting purposes (as tasks):\n1. [*producer.robot*](./producer.robot): `Produce Output`\n2. [*consumer.robot*](./consumer.robot): `Consume Input`\n3. [*reporter.robot*](./reporter.robot): `Report Result`\n\nEvery such task has its own `\u003cTask Name\u003e With Trace` flavor through which you can\nenable a fine grained control over the robot run and enable error tracing as well with\nit. (debugging purposes)\n\n\u003e It is highly recommended to **rename and customize** all these tasks, including any\n\u003e other file, resource or library, as the naming used here isn't suitable for\n\u003e production. (it's just a template demo-ing the functionality)\n\n### How to run\n\n1. The first task runs with the only available initial input Work Item:\n   **producer-input**.\n2. The second task receives as input the output created by the previous (first) one.\n3. The same applies for the 3rd (optional) task, where a report is generated with all\n   the results obtained through the 2nd task.\n\nSet `CREATE_REPORT` env var (in Control Room as well) if you decide to use the 3rd Step\nfor reporting purposes. This is enabled by default locally in the\n[env.json](./devdata/env.json) file (and its other flavors when running with **rcc**).\n\nPlease go through the robot code and read the `[Documentation]` and comment sections\nfor each of the tasks/keywords in order to understand how the bot works in detail.\n\n## Learn more\n\n### Documentation\n\n1. [Work Items](https://robocorp.com/docs-robot-framework/development-guide/control-room/work-items)\n2. [Sharing robot code and libraries](https://robocorp.com/docs-robot-framework/development-guide/qa-and-best-practices/sharing-libraries)\n3. [How to write and use custom Robot Framework Python RPA libraries](https://robocorp.com/docs-robot-framework/development-guide/robot-framework/how-to-use-custom-python-libraries-in-your-robots#quick-recap-on-robot-framework-libraries-and-keywords)\n\n### Robot examples\n\n- [Extended Robot Framework Template](https://github.com/robocorp/template-extended)\n- [Producer-Consumer Model Template](https://github.com/robocorp/template-producer-consumer)\n- [Web Store Order Processor Using Work Items](https://github.com/robocorp/example-web-store-work-items/tree/rfw)\n- [Reporting Producer-Consumer model with Excel and Browser](https://github.com/robocorp/example-producer-consumer-reporting)\n- [Order in bulk the total number of requested robot parts](https://github.com/robocorp/example-orders-distribution)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobocorp%2Ftemplate-extended-producer-consumer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobocorp%2Ftemplate-extended-producer-consumer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobocorp%2Ftemplate-extended-producer-consumer/lists"}