HI all,
Could I please get a definition around these three settings and what they impact in the system?
housekeeping_skip_calculate_size=true
housekeeping_cleanup_openrpa_instances=true
housekeeping_skip_update_user_size=true
Based on some spiky disk traffic and analysis, I have been recommended to set these as above, they are currently false. So I am keen to understand their impact before I change things.
When housekeeping_skip_calculate_size is not set (so false), the housekeeping job will, once an hour and once a day, calculate database usage per user. This puts a lot of load on the database. Setting this to true will disable that.
During the above runs, it also sets a property on each user with the current usage. Setting housekeeping_skip_update_user_size to false will skip updating each user. This helps when you have thousands of active users that need updating.
housekeeping_cleanup_openrpa_instances was “a hack” to help clean up the database due to an issue in OpenRPA that rather often will not properly clean up old instances from the database. When this is enabled, the housekeeping job will remove OpenRPA workflow instances that have been set as running for more than 24 hours as completed.
Thanks for the quick response Allan, much appreciated. for the housekeeping_cleanup_openrpa_instances what is the definition of running? our agents (each has a docker instance) run 24x7x365 polling and or being polled by bots so i am wondering if this will stop them running by marking them completed? or is it something different?
It doesn’t affect robots. Robots store information about running workflows in the local database and inside Opencore. I often see robots not marking a workflow as completed inside Opencore, even if it was, so to avoid having tons of workflows stuck in running/idle, these jobs force a workflow that has not updated its state in 24 hours to be marked as completed. This only matters for running reports about workflows based on the data in the Opencore database. It does not affect robots (unless you stop one, delete the local database, and restart it. Then by default, it would see the idle job and restart it, but once it’s marked completed, it will no longer do that).