1717# limitations under the License.
1818#
1919from __future__ import annotations
20+
21+ from typing import Coroutine , Callable
22+
2023from nitric .application import Nitric
21- from nitric .faas import FunctionServer , Middleware , RateWorkerOptions , Frequency , EventContext
24+ from nitric .faas import FunctionServer , RateWorkerOptions , Frequency , EventHandler
2225
2326
2427class Schedule :
@@ -27,15 +30,15 @@ class Schedule:
2730 description : str
2831 server : FunctionServer
2932
30- def start (self ):
33+ def start (self ) -> Coroutine :
3134 """Start the function server that executes the scheduled middleware."""
3235 return self .server .start ()
3336
3437 def __init__ (self , description : str ):
3538 """Construct a new schedule."""
3639 self .description = description
3740
38- def every (self , rate_description : str , * middleware : Middleware [ EventContext ]) :
41+ def every (self , rate_description : str , handler : EventHandler ) -> None :
3942 """
4043 Register middleware to be run at the specified rate.
4144
@@ -59,15 +62,15 @@ def every(self, rate_description: str, *middleware: Middleware[EventContext]):
5962 opts = RateWorkerOptions (self .description , int (rate ), freq )
6063
6164 self .server = FunctionServer (opts )
62- self .server .event (* middleware )
65+ self .server .event (handler )
6366 # type ignored because the register call is treated as protected.
6467 return Nitric ._register_worker (self .server ) # type: ignore
6568
6669
67- def schedule (description : str , every : str ):
70+ def schedule (description : str , every : str ) -> Callable [[ EventHandler ], Schedule ] :
6871 """Return a schedule decorator."""
6972
70- def decorator (func : Middleware [ EventContext ]) :
73+ def decorator (func : EventHandler ) -> Schedule :
7174 r = Schedule (description )
7275 r .every (every , func )
7376 return r
0 commit comments