Some of the basic yet valid differences between them are:
WebJobs:
- WebJobs are the best choice for handling lightweight work that do not require any sort of customization of the environment that they are running in
- They don't consist/include relatively many resources behind their functionality
- They are preferably a very good choice for tasks which only need to be run periodically, scheduled, or triggered
- They are actually cheap and very easy to setup/run
- By running in the context of your Website, i.e, you get to have the same environment in which your Website runs, and also all the resources that they use are resources which your Website can't use
Worker Roles:
- Worker Roles are better choice for resource-intensive workloads and also, when you need preferences/options to modify the environment in which they are running (ie. a particular .NET framework version or something installed into the OS)
- Worker Roles are more expensive than WebJobs
- They are relatively more difficult to setup and run, but they do offer significantly more power than WebJobs
If I have to put it in general terms, suggest you to begin with WebJobs and then slowly shift to Worker Roles in case your workload requires more functionalities/advantages than WebJobs can offer.