Last active
June 21, 2024 14:47
-
-
Save zyqxd/c1b77786506d7c6df8140e9993275c50 to your computer and use it in GitHub Desktop.
FARM code snippets
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### | |
# Print id, deliveries, created_at in table | |
# | |
ActiveRecord::Base.logger.silence do | |
Promotion.where(theme_campaign: ThemeCampaign.recurring_lapsed_style).each do |p| | |
delivery_campaign = p.delivery_campaigns.first | |
processed = delivery_campaign.sms_deliveries.processed | |
link_window_start = processed.order(created_at: :asc).first&.created_at | |
link_window_end = processed.order(delivered_at: :desc).first&.delivered_at | |
puts [ | |
p.id, | |
delivery_campaign.sms_deliveries.count, | |
p.created_at, | |
link_window_start || 'N/A', | |
link_window_end || 'N/A' | |
].map {|x| x.to_s.ljust(25) }.join(' | ') | |
end; nil | |
end | |
### | |
# Print promotion links | |
# | |
Promotion.find(11569706).promotion_links.order(url: :desc, label: :desc, unique_click_count: :desc).each do |pl| | |
puts [ | |
pl.id, | |
pl.created_at, | |
pl.updated_at, | |
pl.url.truncate(30), | |
pl.label.truncate(30), | |
pl.unique_click_count | |
].map {|x| x.to_s.ljust(35) }.join(' | ') | |
end; nil | |
### | |
# Count sms_delivery_links per promotion | |
# | |
promotion = Promotion.find(11616072); | |
delivery_campaign = promotion.delivery_campaigns.first; | |
processed = delivery_campaign.sms_deliveries; | |
link_window_start = processed.order(created_at: :asc).first&.created_at | |
link_window_end = processed.order(delivered_at: :desc).first&.delivered_at | |
SmsDeliveryLink.where(sms_deliveries: processed).where(created_at: link_window_start..link_window_end).to_sql | |
# | -> Nested loop inner join (cost=118152169.32 rows=5652570) (actual time=179291.461..517397.710 rows=64187384 loops=1) | |
# -> Filter: (sms_delivery_links.created_at between '2024-05-16 13:50:06' and '2024-05-16 20:28:22') (cost=22825878.70 rows=113051394) (actual time=179291.429..270603.484 rows=66286720 loops=1) | |
# -> Table scan on sms_delivery_links (cost=22825878.70 rows=226102787) (actual time=0.051..108138.564 rows=248565488 loops=1) | |
# -> Filter: (sms_deliveries.delivery_campaign_id = 22323904) (cost=0.74 rows=0) (actual time=0.003..0.004 rows=1 loops=66286719) | |
# -> Single-row index lookup on sms_deliveries using PRIMARY (id=sms_delivery_links.sms_delivery_id) (cost=0.74 rows=1) (actual time=0.003..0.003 rows=1 loops=66286719) | |
## Cache test | |
merchant_token = 'JC2MTNGA8TV09' | |
user = User.find_by_token(merchant_token) | |
promotion = user.promotions.where(theme_campaign: ThemeCampaign.recurring_lapsed).first | |
deliveries = promotion.delivery_campaigns.first.sms_deliveries | |
contacts = deliveries.last(500).map(&:contact_token); nil | |
contacts.each do |contact_token| | |
AutomatedMarketing::ProductRecommendationEngine.get_recommended_item( | |
merchant_token: merchant_token, | |
contact_token: contact_token, | |
) | |
end | |
### | |
# Image investigation | |
def test | |
TmmCatalogProcessingItemsConsumer.setup_mini_magick | |
event_message = { merchant_token: 'TFXQ4DGEKBT5R', catalog_object_id: 'D5O5J5TB3O7MWEKW3SHWJTTO' } | |
merchant_token = event_message[:merchant_token] | |
catalog_object_id = event_message[:catalog_object_id] | |
catalog_response_proto = ConnectAPIClient::Catalog.retrieve_catalog_object( | |
object_id: catalog_object_id, | |
merchant_token: merchant_token, | |
include_related_objects: true, | |
api_version: "2024-03-20", | |
) | |
item_tuple = AutomatedMarketing::ItemsCatalog.build_item_image_tuples( | |
objects: [catalog_response_proto[:object]], | |
related_objects: catalog_response_proto[:related_objects] | |
).first | |
image_object = item_tuple&.dig(:image) | |
image_url = image_object[:image_data][:url] | |
puts image_url | |
puts "Opening image..." | |
# puts "Resizing image..." | |
# TmmCatalogProcessingItemsConsumer.resize_image(image) | |
# item_tuple | |
end | |
TmmCatalogProcessingItemsConsumer.setup_mini_magick | |
# Key is the size in mb | |
image_hash = { | |
"7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/8f498628a5933e7abcfa4b08b71d04cc91ab69e4/original.png", | |
"11.7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/c42a1970142a41d48a9b01fe87b1953adcae2849/original.png", | |
"8.6" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/a862e59c536609a27b7579c2f5460bbc654ed454/original.jpeg", | |
"4.7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/aad76621c521eeb3e34c0cceed00979e56fe5227/original.jpeg", | |
"2.5" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/547e2e201c068e228404e56248a5d883da8c734b/original.jpeg", | |
"3.4" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/d1d89a11d0264504d28ede496fdb0a046a7b2268/original.png" | |
} | |
# Fails | |
image = MiniMagick::Image.open(image_hash["3.4"]) | |
image.resize("300000@") | |
# Success | |
image = MiniMagick::Image.open(image_hash["8.6"]) | |
image.resize("300000@") | |
# Success | |
image = MiniMagick::Image.open(image_hash["2.5"]) | |
image.resize("300000@") | |
# Success | |
image = MiniMagick::Image.open(image_hash["4.7"]) | |
image.resize("300000@") | |
# Fails | |
image = MiniMagick::Image.open(image_hash["7"]) | |
image.resize("300000@") | |
# Fails | |
image = MiniMagick::Image.open(image_hash["11.7"]) | |
image.resize("300000@") | |
top -p 1544174 -d 0.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment