Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Always run the computation of the user profile stats #1005

Merged
merged 1 commit into from
Dec 22, 2024

Conversation

shankari
Copy link
Contributor

In #993 we expanded _get_and_store_range to store entries other than the pipeline range, notably the last_call_ts.

However, adding it to the end of the pipeline causes it to be skipped most of the time.

We have an early return from run_intake_pipeline_for_user if there is no new data, so the end of the pipeline (the code in #993) is effectively in the "else"

That's fine as long as we were only caching pipeline state, because it wouldn't change if the pipeline was skipped
But now that we are caching the last_call_ts the current location will not work. Concretely, if the app is contacting the server but is not uploading any data, last_call_ts will never be changed.

Since this is a fix that I am implementing on a holiday weekend, I have not added unit tests to check this. @TeachMeTW please enhance the unit tests to verify that the stats are generated in both cases: (i) when there is new data and (ii) when there is no new data.

In e-mission#993
we expanded `_get_and_store_range` to store entries other than the pipeline
range, notably the `last_call_ts`.

However, adding it to the end of the pipeline causes it to be skipped most
of the time.

We have an early return from `run_intake_pipeline_for_user` if there is no
new data, so the end of the pipeline (the code in e-mission#993) is effectively in
the "else"

That's fine as long as we were only caching pipeline state, because it
wouldn't change if the pipeline was skipped
But now that we are caching the last_call_ts the current location will not
work.  Concretely, if the app is contacting the server but is not uploading
any data, last_call_ts will never be changed.

Since this is a fix that I am implementing on a holiday weekend, I have not
added unit tests to check this. @TeachMeTW please enhance the unit tests to
verify that the stats are generated in both cases: (i) when there is new
data and (ii) when there is no new data.

I have also changed the two tests that were running
`epi.run_intake_pipeline_for_user` and checking the profile for results,
since that is not run in that function any more.

I am a bit surprised that `TestUserStat` was calling
`epi.run_intake_pipeline_for_user` although `etc.runIntakePipeline` was
enhanced to run the new step. @TeachMeTW Why was the enhancement needed?

We need to figure out which method to call and be consistent about it as
part of adding new tests (@JGreenlee, @TeachMeTW)
@shankari shankari force-pushed the run_user_stats_profile_always branch from aac991a to 9d1f414 Compare December 22, 2024 03:45
@shankari shankari merged commit abcc3fc into e-mission:master Dec 22, 2024
5 checks passed
@shankari
Copy link
Contributor Author

Tested on staging, stats should be computed now.

2024-12-22T05:09:52.399086+00:00**********UUID 45c15db9-97a0-4162-a633-82668100aba8: moving to long term**********
No new entries, and skip_if_no_new_data = True, skipping the rest of the pipeline
2024-12-22T05:09:53.252319+00:00**********UUID 45c15db9-97a0-4162-a633-82668100aba8: storing user stats **********

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant