Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7719093
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T03:19:39+00:00 2026-06-01T03:19:39+00:00

I have several gen_server workers periodically requesting some information from hardware sensors. Sensors may

  • 0

I have several gen_server workers periodically requesting some information from hardware sensors. Sensors may temporary fail, it is normal. If sensor fails worker terminates with an exception.

All workers are spawned form supervisor with simple_one_to_one strategy. Also I have a control gen_server, which can start and stop workers and also recives 'DOWN' messages.

So now I have two problems:

  1. If worker is restarted by supervisor its state is lost, which is not acceptable to me. I need to recreate the worker with the same state.

  2. If the worker is failing several times in period of time something serious has happened with the sensors and it requires the operator’s attention. Thus I need to give up restarting the worker and send a message to event handlers. But the default behaviuor of supervisor is terminate after exhaust process restart limit.

I see two solutions:

  1. Set the type of the processes in the supervisor as temporary and control them and restart them in control gen_server. But this is exactly what supervisor should do, so I’m reinventing the wheel.

  2. Create a supervisor for each worker under the main supervisor. This exactly solves my second problem, but the state of workers is lost after restart, thus I need some storage like ets table storing the states of workers.

I am very new to Erlang, so I need some advice to my problem, as to which (if any) solution is the best. Thanks in advance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T03:19:40+00:00Added an answer on June 1, 2026 at 3:19 am

    If worker is restarted by supervisor its state is lost, which is not
    accertable to me. I need to recreate worker with the same state.

    If you need the process state to persist the process lifecycle, you need to store it elsewhere, for example in an ETS table.

    If the worker is failing several times in particular amount of time
    something serious happened with sensors and it require operator’s
    attention. Thus I need to give up restarting worker and send some
    message for event handlers. But default behaviuor of supervisor is
    terminate after exhaust process restart limit.

    Correct. Generally speaking, the less logic you put into your supervisor, the better it is. Supervisors should just supervise child processes and that’s it. But you could still monitor your supervisor and be notified whenever your supervisor gave up (just an idea). This way you can avoid re-invent the wheel and use the supervisor to manage the children.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have several textboxes where users can enter information into them. This can include
I have an OTP application with an event that happens periodically. There are several
We have several Visual Studio projects, and we would like to: enable/disable some defines
We have several wizard style form applications on our website where we capture information
I have several cron jobs and I'd like to perform some calculations on them,
I have several pages to do with several table on each page. I've got
I have several complex data structures like Map< A, Set< B > > Set<
I have several thread pools and I want my application to handle a cancel
I have several bookmarked, but only have so much time in a day to
i have several classes with members called 'Id'. Originally i wanted to store these

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.