- Template: app
- Abp version: 8.3.2
- Created ABP Studio Version: 0.9.2
- Tiered: No
- UI Framework: blazor-server
- Theme: leptonx
- Theme Style: system
- Database Provider: ef
- Database Management System: sqlserver
- Separate Tenant Schema: Yes
- Mobile Framework: maui
- Public Website: Yes
- Optional Modules:
- GDPR
- TextTemplateManagement
- LanguageManagement
- AuditLogging
- SaaS
- OpenIddictAdmin
- Steps to reproduce the issue:
Created app solution, and included an existing module (if I run the module directly in its own solution everything works well)
The module provides some functionality to receive api call and eventually queue up a job in the system which goes to hangfire (this works on module host)
When using this in app solution, the background job is executed ( i can see the api calls that this background job makes going out) but nothing ends up in hangfire, i believe it is executing in the built in default in mem implementation instead of hangfire.
My app module has the same version of hangfire and hangfire.sqlserver installed as module, which are in sync for abp 8.3.2 and is decorated with
typeof(AbpBackgroundJobsHangfireModule),
typeof(AbpBackgroundJobsModule)
in configureservices
context.Services.AddHangfire(config =>
{
config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
});
Configure<AbpHangfireOptions>(options =>
{
options.ServerOptions = new BackgroundJobServerOptions { Queues = new[] { DocusignConstants.DocusignQueue, "default" } };
});
Configure<AbpBackgroundJobWorkerOptions>(options =>
{
options.DefaultTimeout = 864000; //10 days (as seconds)
});
in OnApplicationInitialization app.UseAbpHangfireDashboard("/hangfire", options => { options.AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(enableTenant: true) }; });
While i can log in and see the dashboard, it never receives jobs.
13 Answer(s)
-
0
hi Can you try to inject the
IBackgroundJobManager
to see the service type?Or you can share a project via https://wetransfer.com/ that can reproduce the problem.
liming.ma@volosoft.com
Thanks
-
0
Mailed you
-
0
ok, I will check it asap. Thanks
-
0
hi
I can't build your solution.
Can you share a simple project?
Thanks.
These projects can't be found.
<ProjectReference Include="../../../../Modules/Cns.Modules.Docusign/src/Cns.Modules.Docusign.Blazor/Cns.Modules.Docusign.Blazor.csproj" /> <ProjectReference Include="../../../../Modules/Cns.Modules.Docusign/src/Cns.Modules.Docusign.Blazor.Server/Cns.Modules.Docusign.Blazor.Server.csproj" />
-
0
I reshared projects with you
-
0
-
0
I added this and i can see entry in debug log during project startup regarding hangfire. two questions
- After adding this, project just hangs on start up and then stops. This appears in the log
Hangfire.SqlServer.SqlServerObjectsInstaller: Information: Hangfire SQL objects installed. Hangfire.BackgroundJobServer: Information: Starting Hangfire Server using job storage: 'SQL Server: (LocalDb)\MSSQLLocalDB@Cloudapps' Hangfire.BackgroundJobServer: Information: Using the following options for SQL Server job storage: Queue poll interval: 00:00:00. Hangfire.BackgroundJobServer: Information: Using the following options for Hangfire Server: Worker count: 20 Listening queues: 'docusignsignatures', 'default' Shutdown timeout: 00:00:15 Schedule polling interval: 00:00:15
- I've never had to add this before in any project, is this a new requirement? is it documented?
-
0
-
0
-
0
as you can see our module solution comes from the previous abp design of modules where there were the **src **projects and the several **host **projects in the module solution. to completely develop and test the module we use the host solution as we would an "application" solution. therefore the module and host have the dependencies we plan to use once we integrate our module into any other app solution. for example this module can be integrated to 3 4 5 other app solutions (at least that was the idea with modules right?)
I see in the latest version of solutions generated now by abp studio (since we can no longer generate anything in suite), creation of module doesnt have any host project and its just library projects for app project, but that means usability amongst other app projects is out of the question?
Either way, if you're saying from now on our module projects cannot use already implemented modules from abp, then how do we code functionality in our modules that consumes that? for example the module provides all of the functionality related to docusign, like the app services that are exposed, events that are triggered and jobs that are handled, not the application project the application solution will bring in other modules that provide their respective functionality like this..
Could you provide a process or flow of how we should develop these modules to make sure they don't clash?
Also, could you provide a process flow for how you found the root problem in this ticket? It will help us with our troubleshooting before opening tickets in the future.
-
0
hi
The module should be abstract, it can depend on the
Volo.Abp.BackgroundJobs.Abstractions
orVolo.Abp.BackgroundJobs
module.Then, use hangfire to replace it in your application.
So that your application can use its preferred implementation(
hangfire
orQuartz
) -
0
-
0
:)