Some question about `TimelockController`

Hi, community, i've just new to solidity and openzeppelin, after read your API docs of TimelockController, what's bothers me is:

When i call a schedule method, would it execute automatically after the timer expired, or i need to manually call the execute method to run the task?

I just want to know how to implement an contract which users can stake their tokens to earn any token that locks for a period and automatically relase it after the timer expired, i've read the TokenTimelock API doc, but it seems not the proper solution for me.

Can anyone give me some reference or ideas?

Are you trying to create a staking contract with a reward token

yes, it's exactly what i want

I Don't think that has anything to do with the tokentimelock contract

Okay, thanks. Is there any reference or guide related that may help? I've already googling around for several days, but don't get any useful info.

The main limitation for me is the contract is designed for millions users, i don't think using a structure to store user's staking time is a good way.

Let me check for a resource I got.
Would reach back to you now

Appreciate for that.

Look for Uniswap or Panckeswap github repo, maybe you can find useful information there

Okay, will do. thank you for your suggestion.