I’m not sure what you mean by ‘sending logic’, but if you mean to send the code to be executed, it does not sound like the normal way of doing things.
The relationship between the client - the one queuing the job - and the server - the one executing the job - normally consist of the client telling what to do, and the server knowing how to do it.
One common way of doing that is to have two assemblies in the server app: one with interfaces describing what jobs the server knows how to execute, and one with the actual implementation. The one with the interface will be shared with the clients.
Of cause, it’s possible to turn this around, and have the clients implement a assembly with jobs for each client, and publish this assembly. The server could load these assemblies and then be able to execute the jobs.
The result would be the same: at runtime, all the execution logic will be present at the server.
The difference is more of a code organization-thing. If the code should be in the server or client code repository.