Added hosted services #186
Some checks failed
Test before pr merge / test-lint (pull_request) Failing after 6s
Build on push / prepare (push) Successful in 9s
Build on push / core (push) Successful in 18s
Build on push / query (push) Successful in 18s
Build on push / dependency (push) Successful in 17s
Build on push / api (push) Has been cancelled
Build on push / application (push) Has started running
Build on push / auth (push) Has been cancelled
Build on push / database (push) Has started running
Build on push / mail (push) Has been cancelled
Build on push / translation (push) Has been cancelled

This commit is contained in:
2025-09-25 00:53:17 +02:00
parent 75417966eb
commit 2bb264b8c1
9 changed files with 112 additions and 18 deletions

View File

@@ -1,13 +1,12 @@
import time
from typing import Optional
from cpl.application.abc import ApplicationABC
from cpl.core.configuration import Configuration
from cpl.core.console import Console
from cpl.dependency import ServiceProvider
from cpl.core.environment import Environment
from cpl.core.log import LoggerABC
from cpl.core.pipes import IPAddressPipe
from cpl.dependency import ServiceProvider
from cpl.mail import EMail, EMailClientABC
from cpl.query import List
from scoped_service import ScopedService
@@ -74,3 +73,9 @@ class Application(ApplicationABC):
test_settings1 = Configuration.get(TestSettings)
Console.write_line(test_settings1.value)
# self.test_send_mail()
x = 0
while x < 5:
Console.write_line("Running...")
x += 1
time.sleep(5)

View File

@@ -0,0 +1,20 @@
import asyncio
import time
from cpl.core.console import Console
from cpl.dependency.hosted.hosted_service import HostedService
class Hosted(HostedService):
def __init__(self):
self._stopped = False
async def start(self):
Console.write_line("Hosted Service Started")
while not self._stopped:
Console.write_line("Hosted Service Running")
await asyncio.sleep(5)
async def stop(self):
Console.write_line("Hosted Service Stopped")
self._stopped = True

View File

@@ -4,6 +4,7 @@ from cpl.core.configuration import Configuration
from cpl.core.environment import Environment
from cpl.core.pipes import IPAddressPipe
from cpl.dependency import ServiceCollection
from example.custom.general.src.hosted_service import Hosted
from scoped_service import ScopedService
from test_service import TestService
@@ -23,3 +24,4 @@ class Startup(StartupABC):
services.add_transient(IPAddressPipe)
services.add_singleton(TestService)
services.add_scoped(ScopedService)
services.add_hosted_service(Hosted)