# Console app for the web that runs all the time?

**URL:** <https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724>\
**Category:** Web\
**Created:** [August 6, 2026, 1:48pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724 "2026-08-06T13:48:45Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_Fatte](https://forum.xojo.com/letter_avatar_proxy/v4/letter/j/4bbf92/32.png) [@John\_Fatte](https://forum.xojo.com/u/John_Fatte)\
**Post date:** [August 6, 2026, 1:48pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/1 "2026-08-06T13:48:45Z")

</div>

I’m working on a web app where there could be multiple users who need a recurring process - such as an email sent to them - and the customer’s data files will be in separate folders. The best way that I can see to handle this is to create a console app that is running all the time with a timer that will continually check to see if it is time to send the email. Since the data files are in separate client folders and they could each have different settings for the email, it would have to be a controller app that would periodically check each one and determine if the email should be sent.

Is a console web app that is running all the time the best way to handle this? Our plan is to deploy this app on xojocloud.

---

<div class="post-metadata">

**Author:** ![Brandon\_Warlick](https://forum.xojo.com/user_avatar/forum.xojo.com/brandon_warlick/32/238_2.png) [@Brandon\_Warlick](https://forum.xojo.com/u/Brandon_Warlick)\
**Post date:** [August 6, 2026, 3:38pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/2 "2026-08-06T15:38:03Z")

</div>

Before adding the complexity of a helper, you might try sending directly from the Web App first, using a timer.

---

<div class="post-metadata">

**Author:** ![John\_Fatte](https://forum.xojo.com/letter_avatar_proxy/v4/letter/j/4bbf92/32.png) [@John\_Fatte](https://forum.xojo.com/u/John_Fatte)\
**Post date:** [August 6, 2026, 3:47pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/3 "2026-08-06T15:47:57Z")

</div>

Brandon, the issue I see if the web app needs to be running all the time with someone logged in.

I found some other info via AI, that describes the process like this:

1. Create a console app compiled for Linux because Xojo cloud runs on a Linux server.

2. Uploade the console app to your Xojo cloud using SFTP and your Xojo cloud credentials.

3. Use an existing web app to start the console app. This is done with a shell command in your web app.

---

<div class="post-metadata">

**Author:** ![brian\_franco](https://forum.xojo.com/user_avatar/forum.xojo.com/brian_franco/32/156_2.png) [@brian\_franco](https://forum.xojo.com/u/brian_franco)\
**Post date:** [August 6, 2026, 4:14pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/4 "2026-08-06T16:14:28Z")

</div>

Xojo Web App is a console application

---

<div class="post-metadata">

**Author:** ![Brandon\_Warlick](https://forum.xojo.com/user_avatar/forum.xojo.com/brandon_warlick/32/238_2.png) [@Brandon\_Warlick](https://forum.xojo.com/u/Brandon_Warlick)\
**Post date:** [August 6, 2026, 4:53pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/5 "2026-08-06T16:53:17Z")

</div>

Xojo web apps are always running, even if nobody is using it. As @brian_franco said, Xojo Web apps are basically console apps anyway.

---

<div class="post-metadata">

**Author:** ![Ricardo\_Cruz](https://forum.xojo.com/user_avatar/forum.xojo.com/ricardo_cruz/32/7852_2.png) [@Ricardo\_Cruz](https://forum.xojo.com/u/Ricardo_Cruz)\
**Post date:** [August 7, 2026, 6:29am UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/6 "2026-08-07T06:29:50Z")

</div>

As already mentioned, you could just setup `Timer` in the `App.Opening` event that will be executed periodically.

As Timers will be executed on the Main Thread, any heavy operation could block processing new browser requests, so move anything that could be blocking them into a Thread. Also, when working with processes that aren’t tied to web sessions, you want to use a `Timer` instead of a `WebTimer` and a `Thread` instead of a `WebThread`.

Here is a sample project:  
[WebApplication-Timer.xojo\_binary\_project.zip](https://forum.xojo.com/uploads/short-url/rNQeZ24skQsJLW60sYviJqEsoHW.zip) (9.6 KB)

Alternatively, if you prefer the helper Console application, the Timer in the sample project would be calling a `Shell` that executes your helper process, instead of the `Thread`.

---

<div class="post-metadata">

**Author:** ![David\_Cox](https://forum.xojo.com/user_avatar/forum.xojo.com/david_cox/32/227_2.png) [@David\_Cox](https://forum.xojo.com/u/David_Cox)\
**Post date:** [August 7, 2026, 7:26am UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/7 "2026-08-07T07:26:31Z")

</div>

I add the email data into a host database then contact the WebApp with a HandleURL eg  
[https://www.MyCompany.com/SendAllEmails](https://www.MyCompany.com/SendAllEmails)  
which sends out all outstanding emails, then updates the database that the email has been sent (or any errors) so they aren’t sent again. No need for a Timer!

---

<div class="post-metadata">

**Author:** ![John\_Fatte](https://forum.xojo.com/letter_avatar_proxy/v4/letter/j/4bbf92/32.png) [@John\_Fatte](https://forum.xojo.com/u/John_Fatte)\
**Post date:** [August 7, 2026, 2:12pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/8 "2026-08-07T14:12:45Z")

</div>

Ricardo - thank you for the sample app. That will be extremely helpful.

---

<div class="post-metadata">

**Author:** ![John\_Fatte](https://forum.xojo.com/letter_avatar_proxy/v4/letter/j/4bbf92/32.png) [@John\_Fatte](https://forum.xojo.com/u/John_Fatte)\
**Post date:** [August 10, 2026, 6:32pm UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/9 "2026-08-10T18:32:14Z")

</div>

Follow up question.

If you are running on Xojo cloud and you have the medium server, since every application is running on each server, how do you prevent all three instances of the application from running the timer to check to see if emails should be sent?

---

<div class="post-metadata">

**Author:** ![Christian\_Wheel](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_wheel/32/20536_2.png) [@Christian\_Wheel](https://forum.xojo.com/u/Christian_Wheel)\
**Post date:** [August 11, 2026, 5:34am UTC](https://forum.xojo.com/t/console-app-for-the-web-that-runs-all-the-time/88724/10 "2026-08-11T05:34:26Z")

</div>

I would take a different approach, a single helper app that sends the emails. You could set it up to run in a cronjob every 1m, 5m or whatever your duration is.

If you must do it from your web app, you could store a small data file in the user’s data folder with a timestamp of the most recent email sent. Then at the top of your “send email” routine you check for this file and see if an email has been sent recently, and if so, return.
