There are many articles you will find on internet about Timer Jobs in SharePoint which is based on a server but not on service. Timer job based on a server having a major issue. i.e- Job will not work if that server is crashed.
To create timer job based on service or say service application, we will have to do few things, this are below
- Create custom service and add to the local farm
- Create service instance based on above custom service and add this to all the servers in the farm
- Create timer job
- Associate timer job to service