@@ -1668,10 +1668,11 @@ def converse_alpha2(
16681668 except RpcError as err :
16691669 raise DaprGrpcError (err ) from err
16701670
1671- def schedule_job_alpha1 (self , job : Job , overwrite : bool = False ) -> DaprResponse :
1671+ def schedule_job (self , job : Job , overwrite : bool = False ) -> DaprResponse :
16721672 """Schedules a job to be triggered at a specified time or interval.
16731673
1674- This is an Alpha API and is subject to change.
1674+ Calls the stable ScheduleJob RPC and falls back to ScheduleJobAlpha1 when
1675+ the sidecar predates the stable Jobs API.
16751676
16761677 Args:
16771678 job (Job): The job to schedule. Must have a name and either schedule or due_time.
@@ -1684,31 +1685,46 @@ def schedule_job_alpha1(self, job: Job, overwrite: bool = False) -> DaprResponse
16841685 ValueError: If job name is empty or both schedule and due_time are missing.
16851686 DaprGrpcError: If the Dapr runtime returns an error.
16861687 """
1687- # Warnings and input validation
1688- warn (
1689- 'The Jobs API is an Alpha version and is subject to change.' ,
1690- UserWarning ,
1691- stacklevel = 2 ,
1692- )
16931688 validateNotBlankString (job_name = job .name )
16941689
16951690 if not job .schedule and not job .due_time :
16961691 raise ValueError ('Job must have either schedule or due_time specified' )
16971692
1698- # Convert job to proto using the Job class private method
16991693 job_proto = job ._get_proto ()
17001694 request = api_v1 .ScheduleJobRequest (job = job_proto , overwrite = overwrite )
17011695
17021696 try :
1703- _ , call = self .retry_policy .run_rpc (self ._stub .ScheduleJobAlpha1 .with_call , request )
1704- return DaprResponse (headers = call .initial_metadata ())
1697+ _ , call = self .retry_policy .run_rpc (self ._stub .ScheduleJob .with_call , request )
17051698 except RpcError as err :
1706- raise DaprGrpcError (err ) from err
1699+ if err .code () == StatusCode .UNIMPLEMENTED :
1700+ try :
1701+ _ , call = self .retry_policy .run_rpc (
1702+ self ._stub .ScheduleJobAlpha1 .with_call , request
1703+ )
1704+ except RpcError as err2 :
1705+ raise DaprGrpcError (err2 ) from err2
1706+ else :
1707+ raise DaprGrpcError (err ) from err
1708+ return DaprResponse (headers = call .initial_metadata ())
17071709
1708- def get_job_alpha1 (self , name : str ) -> Job :
1710+ def schedule_job_alpha1 (self , job : Job , overwrite : bool = False ) -> DaprResponse :
1711+ """Deprecated: use :meth:`schedule_job`.
1712+
1713+ The Jobs API graduated to stable in Dapr 1.18; this Alpha1 alias remains
1714+ for backwards compatibility and forwards to :meth:`schedule_job`.
1715+ """
1716+ warn (
1717+ 'schedule_job_alpha1 is deprecated; use schedule_job instead.' ,
1718+ DeprecationWarning ,
1719+ stacklevel = 2 ,
1720+ )
1721+ return self .schedule_job (job , overwrite )
1722+
1723+ def get_job (self , name : str ) -> Job :
17091724 """Gets a scheduled job by name.
17101725
1711- This is an Alpha API and is subject to change.
1726+ Calls the stable GetJob RPC and falls back to GetJobAlpha1 when the
1727+ sidecar predates the stable Jobs API.
17121728
17131729 Args:
17141730 name (str): The name of the job to retrieve.
@@ -1720,26 +1736,42 @@ def get_job_alpha1(self, name: str) -> Job:
17201736 ValueError: If job name is empty.
17211737 DaprGrpcError: If the Dapr runtime returns an error.
17221738 """
1723- # Warnings and input validation
1724- warn (
1725- 'The Jobs API is an Alpha version and is subject to change.' ,
1726- UserWarning ,
1727- stacklevel = 2 ,
1728- )
17291739 validateNotBlankString (job_name = name )
17301740
17311741 request = api_v1 .GetJobRequest (name = name )
17321742
17331743 try :
1734- response , call = self .retry_policy .run_rpc (self ._stub .GetJobAlpha1 .with_call , request )
1735- return Job ._from_proto (response .job )
1744+ response , _ = self .retry_policy .run_rpc (self ._stub .GetJob .with_call , request )
17361745 except RpcError as err :
1737- raise DaprGrpcError (err ) from err
1746+ if err .code () == StatusCode .UNIMPLEMENTED :
1747+ try :
1748+ response , _ = self .retry_policy .run_rpc (
1749+ self ._stub .GetJobAlpha1 .with_call , request
1750+ )
1751+ except RpcError as err2 :
1752+ raise DaprGrpcError (err2 ) from err2
1753+ else :
1754+ raise DaprGrpcError (err ) from err
1755+ return Job ._from_proto (response .job )
17381756
1739- def delete_job_alpha1 (self , name : str ) -> DaprResponse :
1757+ def get_job_alpha1 (self , name : str ) -> Job :
1758+ """Deprecated: use :meth:`get_job`.
1759+
1760+ The Jobs API graduated to stable in Dapr 1.18; this Alpha1 alias remains
1761+ for backwards compatibility and forwards to :meth:`get_job`.
1762+ """
1763+ warn (
1764+ 'get_job_alpha1 is deprecated; use get_job instead.' ,
1765+ DeprecationWarning ,
1766+ stacklevel = 2 ,
1767+ )
1768+ return self .get_job (name )
1769+
1770+ def delete_job (self , name : str ) -> DaprResponse :
17401771 """Deletes a scheduled job by name.
17411772
1742- This is an Alpha API and is subject to change.
1773+ Calls the stable DeleteJob RPC and falls back to DeleteJobAlpha1 when the
1774+ sidecar predates the stable Jobs API.
17431775
17441776 Args:
17451777 name (str): The name of the job to delete.
@@ -1751,21 +1783,36 @@ def delete_job_alpha1(self, name: str) -> DaprResponse:
17511783 ValueError: If job name is empty.
17521784 DaprGrpcError: If the Dapr runtime returns an error.
17531785 """
1754- # Warnings and input validation
1755- warn (
1756- 'The Jobs API is an Alpha version and is subject to change.' ,
1757- UserWarning ,
1758- stacklevel = 2 ,
1759- )
17601786 validateNotBlankString (job_name = name )
17611787
17621788 request = api_v1 .DeleteJobRequest (name = name )
17631789
17641790 try :
1765- _ , call = self .retry_policy .run_rpc (self ._stub .DeleteJobAlpha1 .with_call , request )
1766- return DaprResponse (headers = call .initial_metadata ())
1791+ _ , call = self .retry_policy .run_rpc (self ._stub .DeleteJob .with_call , request )
17671792 except RpcError as err :
1768- raise DaprGrpcError (err ) from err
1793+ if err .code () == StatusCode .UNIMPLEMENTED :
1794+ try :
1795+ _ , call = self .retry_policy .run_rpc (
1796+ self ._stub .DeleteJobAlpha1 .with_call , request
1797+ )
1798+ except RpcError as err2 :
1799+ raise DaprGrpcError (err2 ) from err2
1800+ else :
1801+ raise DaprGrpcError (err ) from err
1802+ return DaprResponse (headers = call .initial_metadata ())
1803+
1804+ def delete_job_alpha1 (self , name : str ) -> DaprResponse :
1805+ """Deprecated: use :meth:`delete_job`.
1806+
1807+ The Jobs API graduated to stable in Dapr 1.18; this Alpha1 alias remains
1808+ for backwards compatibility and forwards to :meth:`delete_job`.
1809+ """
1810+ warn (
1811+ 'delete_job_alpha1 is deprecated; use delete_job instead.' ,
1812+ DeprecationWarning ,
1813+ stacklevel = 2 ,
1814+ )
1815+ return self .delete_job (name )
17691816
17701817 def wait (self , timeout_s : float ):
17711818 """Waits for sidecar to be available within the timeout.
0 commit comments